चार्ट ऑब्जेक्ट पर Matplotlib - plt.show ()

Aug 28 2020

मुझे यहाँ एक बहुत ही सरल उदाहरण मिला है। मैं एक फ़ंक्शन से लौटे कुल्हाड़ी से एक भूखंड बना रहा हूं:

import matplotlib.pyplot as plt

x = ['a', 'b', 'c']
y = [1, 2, 3]

def make_plot():

    fig, ax = plt.subplots()
    ax.set_title('test bar chart')

    return ax


chart = make_plot()
chart.bar(x, y)

plt.show()               #why does this show the chart?

मेरा सवाल आखिर में plt.show () के बारे में है। जाहिर है, यह चार्ट का आउटपुट दिखाता है। पर क्यों? मेरे लिए यह plt.show () किसी भी चीज़ से बंधा हुआ नहीं है। मेरे पास मेरी chartवस्तु है, जिसमें इसके सभी मापदंडों और व्हाट्सएप के साथ मेरा चार्ट है। लेकिन plt.show () इसके साथ बातचीत करना कैसे जानता है? वर्ग उदाहरण के chart.show()रूप chartमें कुछ ऐसा होना अधिक सहज होगा ।

जवाब

2 Keon Aug 28 2020 at 01:42

अच्छा प्रश्न! chartजब आप कॉल करते हैं तो एक एक्सिस बनाया जाता है plt.subplots()। पाइलपॉट को "स्टेटफुल" एपीआई कहा जाता है। जब आप पीटी को कॉल करते हैं। * फ़ंक्शंस, यह पाइलट की आंतरिक स्थिति को बदल देता है और यह भविष्य की कॉल को प्रभावित कर सकता है। जब आप कॉल करते हैं plt.subplots(), तो यह पता चलता है कि एक नया बनाया गया चित्र है जिसके अंदर नव निर्मित सबप्लोट एक्सिस है।

इसी तरह, यदि आप कॉल करते हैं plt.plot(), तो इसका एक संग्रहीत रिकॉर्ड है कि सबसे हाल की कुल्हाड़ियों क्या हैं, और उस भूखंड पर डेटा को प्लॉट करता है।

Pyplot sourcecode पर एक नज़र डालें और आप देख सकते हैं कि इसके पास एक वैश्विक managerचर कैसे है जो इसका उपयोग वर्तमान भूखंड को संग्रहीत करने के लिए करता है, और managerजब आप एक भूखंड बनाते हैं तो अपडेट करते हैं।

इसके अतिरिक्त, वहाँ है Figure.show()। यदि आप pyplot के आसपास काम करना चाहते हैं, तो यह कुछ इस तरह दिखता है