pandas 0.23 - 20. Visualization

Visualization




pandas

Visualization

हम matplotlib API को संदर्भित करने के लिए मानक सम्मेलन का उपयोग करते हैं:

In [1]: import matplotlib.pyplot as plt

हम आसानी से सभ्य दिखने वाले भूखंड बनाने के लिए पांडा में मूल बातें प्रदान करते हैं। विज़ुअलाइज़ेशन पुस्तकालयों के लिए ecosystem अनुभाग देखें जो यहां प्रलेखित मूल बातें से परे हैं।

ध्यान दें

np.random को सभी कॉल 123456 के साथ np.random हैं।

बेसिक प्लॉटिंग: plot

हम मूल बातें प्रदर्शित करेंगे, कुछ उन्नत रणनीतियों के लिए cookbook की cookbook देखें।

सीरीज़ और डेटाफ़्रेम पर plot विधि, केवल एक साधारण आवरण है जो plt.plot() आसपास है:

In [2]: ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))

In [3]: ts = ts.cumsum()

In [4]: ts.plot()
Out[4]: <matplotlib.axes._subplots.AxesSubplot at 0x7f20d5690710>
_images / series_plot_basic.png

यदि अनुक्रमणिका में दिनांक शामिल हैं, तो यह gcf().autofmt_xdate() को ऊपर के अनुसार x- अक्ष को अच्छी तरह से प्रारूपित करने का प्रयास करता है।

DataFrame पर, plot() लेबल वाले सभी कॉलमों को प्लॉट करने की सुविधा है:

In [5]: df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD'))

In [6]: df = df.cumsum()

In [7]: plt.figure(); df.plot();
_images / frame_plot_basic.png

आप plot() में x और y कीवर्ड का उपयोग करके एक कॉलम बनाम दूसरे को प्लॉट कर सकते हैं:

In [8]: df3 = pd.DataFrame(np.random.randn(1000, 2), columns=['B', 'C']).cumsum()

In [9]: df3['A'] = pd.Series(list(range(len(df))))

In [10]: df3.plot(x='A', y='B')
Out[10]: <matplotlib.axes._subplots.AxesSubplot at 0x7f20d5aabf28>
_images / df_plot_xy.png

ध्यान दें

अधिक स्वरूपण और स्टाइलिंग विकल्पों के लिए, नीचे formatting देखें।

अन्य भूखंड

प्लॉटिंग विधियां डिफ़ॉल्ट रेखा प्लॉट के अलावा कुछ मुट्ठी भर प्लॉट शैलियों की अनुमति देती हैं। इन तरीकों को plot() की kind कीवर्ड तर्क के रूप में प्रदान किया जा सकता है, और इसमें शामिल हैं:

उदाहरण के लिए, एक बार प्लॉट को निम्न तरीके से बनाया जा सकता है:

In [11]: plt.figure();

In [12]: df.iloc[5].plot(kind='bar');
_images / bar_plot_ex.png

आप DataFrame.plot.<kind> का उपयोग करके इन दूसरे प्लॉटों को भी बना सकते हैं DataFrame.plot.<kind> kind कीवर्ड तर्क प्रदान करने के बजाय DataFrame.plot.<kind> । इससे प्लॉट विधियों और उनके द्वारा उपयोग किए जाने वाले विशिष्ट तर्कों की खोज करना आसान हो जाता है:

In [13]: df = pd.DataFrame()

In [14]: df.plot.<TAB>
df.plot.area     df.plot.barh     df.plot.density  df.plot.hist     df.plot.line     df.plot.scatter
df.plot.bar      df.plot.box      df.plot.hexbin   df.plot.kde      df.plot.pie

इन kind अलावा, ‘hist’ , और ‘box’ तरीके हैं, जो एक अलग इंटरफ़ेस का उपयोग करते हैं।

अंत में, pandas.plotting में कई प्लॉटिंग कार्य हैं pandas.plotting जो एक तर्क के रूप में एक Series या DataFrame लेते हैं। इसमें शामिल है:

प्लॉट्स को errorbars या tables साथ भी सजाया जा सकता है।

बार प्लाट

लेबल किए गए, गैर-समय श्रृंखला डेटा के लिए, आप बार प्लॉट तैयार करना चाह सकते हैं:

In [15]: plt.figure();

In [16]: df.iloc[5].plot.bar(); plt.axhline(0, color='k')
Out[16]: <matplotlib.lines.Line2D at 0x7f20d46a4358>
_images / bar_plot_ex.png

DataFrameâ € ™ s plot.bar() विधि को कॉल करने से कई बार प्लॉट का उत्पादन होता है:

In [17]: df2 = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])

In [18]: df2.plot.bar();
_images / bar_plot_multi_ex.png

स्टैक्ड बार प्लॉट बनाने के लिए, stacked=True पास करें stacked=True :

In [19]: df2.plot.bar(stacked=True);
_images / bar_plot_stacked_ex.png

क्षैतिज बार भूखंड प्राप्त करने के लिए, barh विधि का उपयोग करें:

In [20]: df2.plot.barh(stacked=True);
_images / barh_plot_stacked_ex.png

हिस्टोग्राम

हिस्टोग्राम को DataFrame.plot.hist() और Series.plot.hist() विधियों का उपयोग करके तैयार किया जा सकता है।

In [21]: df4 = pd.DataFrame({'a': np.random.randn(1000) + 1, 'b': np.random.randn(1000),
   ....:                     'c': np.random.randn(1000) - 1}, columns=['a', 'b', 'c'])
   ....: 

In [22]: plt.figure();

In [23]: df4.plot.hist(alpha=0.5)
Out[23]: <matplotlib.axes._subplots.AxesSubplot at 0x7f20cf918908>
_images / hist_new.png

एक हिस्टोग्राम को stacked=True का उपयोग करके stacked=True किया जा सकता है। बिन साइज का उपयोग करके बिन साइज को बदला जा सकता है।

In [24]: plt.figure();

In [25]: df4.plot.hist(stacked=True, bins=20)
Out[25]: <matplotlib.axes._subplots.AxesSubplot at 0x7f20cf909a58>
_images / hist_new_stacked.png

आप matplotlib hist द्वारा समर्थित अन्य कीवर्ड पास कर सकते हैं। उदाहरण के लिए, क्षैतिज और संचयी हिस्टोग्राम को orientation='horizontal' और cumulative=True द्वारा खींचा जा सकता है।

In [26]: plt.figure();

In [27]: df4['a'].plot.hist(orientation='horizontal', cumulative=True)
Out[27]: <matplotlib.axes._subplots.AxesSubplot at 0x7f20cfbceba8>
_images / hist_new_kwargs.png

अधिक के लिए hist पद्धति और matplotlib hist प्रलेखन देखें।

मौजूदा इंटरफ़ेस DataFrame.hist को अभी भी हिस्टोग्राम की साजिश के लिए इस्तेमाल किया जा सकता है।

In [28]: plt.figure();

In [29]: df['A'].diff().hist()
Out[29]: <matplotlib.axes._subplots.AxesSubplot at 0x7f20d550efd0>
_images / hist_plot_ex.png

DataFrame.hist() कई सबप्लॉट पर स्तंभों के हिस्टोग्राम को प्लॉट करता है:

In [30]: plt.figure()
Out[30]: <Figure size 640x480 with 0 Axes>

In [31]: df.diff().hist(color='k', alpha=0.5, bins=50)