बिंदुओं का उपयोग करके पंडों के डेटा फ्रेम के दो कॉलम को कैसे प्लॉट करें?


96

मेरे पास एक पंडों का डेटा फ्रेम है और वह एक कॉलम से मूल्यों को दूसरे कॉलम से मानों को प्लॉट करना चाहेगा। सौभाग्य से, plotडेटा-फ़्रेमों से जुड़ा एक तरीका है जो मुझे लगता है कि मुझे क्या करना चाहिए:

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

दुर्भाग्य से, यह प्लॉट शैलियों ( पैरामीटर के बाद यहां सूचीबद्ध kind) के बीच जैसा दिखता है, अंक नहीं हैं। मैं लाइनों या बार या घनत्व का उपयोग कर सकता हूं लेकिन अंक नहीं। क्या कोई ऐसा काम है जो इस समस्या को हल करने में मदद कर सकता है।

जवाबों:


115

आप styleकॉल करते समय प्लॉट की गई लाइन को निर्दिष्ट कर सकते हैं df.plot:

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

उत्पादन


78

इसके लिए (और सबसे ज्यादा प्लॉटिंग) मैं पंडों के रैपरों से लेकर मैटलपोटलिब पर भरोसा नहीं करता। इसके बजाय, बस सीधे 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उदाहरण के साथ कॉलम के मानों की एक न्यूपी सरणी तक पहुंच सकते हैं ।

मैं मिलीसेकंड परिशुद्धता के साथ टाइमस्टैम्प मूल्यों के एक कॉलम के मामले में पंडों के डिफ़ॉल्ट प्लॉटिंग के साथ इसका उपयोग करने में परेशानी में था। वस्तुओं को datetime64टाइप करने के लिए परिवर्तित करने की कोशिश में , मैंने एक बुरा मुद्दा भी खोजा: < पंडों ने गलत परिणाम देते हुए पूछा कि क्या टाइमस्टैम्प कॉलम के मानों में एस्ट्रप > है।


3

Pandasmatplotlibबुनियादी भूखंडों के लिए एक पुस्तकालय के रूप में उपयोग करता है । आपके मामले में सबसे आसान तरीका निम्नलिखित का उपयोग करेगा:

import pandas as pd
import numpy as np

#creating sample data 
sample_data={'col_name_1':np.random.rand(20),
      'col_name_2': np.random.rand(20)}
df= pd.DataFrame(sample_data)
df.plot(x='col_name_1', y='col_name_2', style='o')

यहां छवि विवरण दर्ज करें

हालांकि, मैं seabornएक वैकल्पिक समाधान के रूप में उपयोग करने की सलाह matplotlib.दूंगा यदि आप चाहते हैं कि आपके पास अधिक अनुकूलित भूखंड हैं, जबकि बुनियादी स्तर पर नहीं जा रहा है इस मामले में आप समाधान का पालन करेंगे:

import pandas as pd
import seaborn as sns
import numpy as np

#creating sample data 
sample_data={'col_name_1':np.random.rand(20),
      'col_name_2': np.random.rand(20)}
df= pd.DataFrame(sample_data)
sns.scatterplot(x="col_name_1", y="col_name_2", data=df)

यहां छवि विवरण दर्ज करें


-1

अब नवीनतम पांडा में आप सीधे df.plot.scatter फ़ंक्शन का उपयोग कर सकते हैं

df = pd.DataFrame([[5.1, 3.5, 0], [4.9, 3.0, 0], [7.0, 3.2, 1],
                   [6.4, 3.2, 1], [5.9, 3.0, 2]],
                  columns=['length', 'width', 'species'])
ax1 = df.plot.scatter(x='length',
                      y='width',
                      c='DarkBlue')

https://pandas.pydata.org/pandas-docs/version/0.23/generated/pandas.DataFrame.plot.scatter.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.