2013-07-23 11 views
40

मेरे पास एक पांडा डेटा फ्रेम है और एक कॉलम से मूल्यों को बनाम अन्य कॉलम के मानों को प्लॉट करना चाहता हूं।अंक का उपयोग कर पांडा डेटा फ्रेम के दो कॉलम कैसे प्लॉट करें?

df.plot(x='col_name_1', y='col_name_2') 

दुर्भाग्य से, यह साजिश शैलियों (kind पैरामीटर के बाद here सूचीबद्ध) के बीच की तरह दिखता है वहाँ अंक नहीं हैं: सौभाग्य से, plot डेटा फ्रेम है कि मैं क्या जरूरत है ऐसा करने के लिए लगता है के साथ जुड़े विधि है। मैं लाइनों या बार या यहां तक ​​कि घनत्व का उपयोग कर सकता हूं लेकिन अंक नहीं। क्या वहां कोई काम है जो इस समस्या को हल करने में मदद कर सकता है।

उत्तर

48

आप जब df.plot बुला साजिश रची पंक्ति का style निर्दिष्ट कर सकते हैं:

df.plot(x='col_name_1', y='col_name_2', style='o') 

style तर्क भी हो सकता है एक dict या list, जैसे:

import numpy as np 
import pandas as pd 

d = {'one' : np.random.rand(10), 
    'two' : np.random.rand(10)} 

df = pd.DataFrame(d) 

df.plot(style=['o','rx']) 

सभी को स्वीकार कर लिया शैली स्वरूप हैं matplotlib.pyplot.plot के प्रलेखन में सूचीबद्ध है।

Output

39

इस (और सबसे साजिश) के लिए मैं matplotlib के लिए पांडा रैपर पर भरोसा नहीं होता। इसके बजाय, बस matplotlib सीधे का उपयोग करें:

import matplotlib.pyplot as plt 
plt.scatter(df['col_name_1'], df['col_name_2']) 
plt.show() # Depending on whether you use IPython or interactive mode, etc. 

और याद रखें कि आप उदाहरण के लिए df.col_name_1.values साथ स्तंभ के मानों की एक NumPy सरणी पहुँच सकते हैं।

मैं मिलीसेकंड परिशुद्धता के साथ टाइमस्टैम्प मानों के कॉलम के मामले में पांडस डिफ़ॉल्ट साजिश के साथ इसका उपयोग कर परेशानी में भाग गया। वस्तुओं को datetime64 प्रकार में बदलने की कोशिश में, मैंने एक बुरा मुद्दा भी खोजा: < Pandas gives incorrect result when asking if Timestamp column values have attr astype>।

+1

यह मेरे लिए बहुत उपयोगी था। धन्यवाद!! – ChandanJha

संबंधित मुद्दे