matplotlib.pyplot पिछले भूखंडों को नहीं भूलेगा - मैं फ्लश / रिफ्रेश कैसे कर सकता हूं?


89

आप matplotlib.pyplotपिछले भूखंडों को "भूल" कैसे पाते हैं

मैं कई बार प्रयोग करके साजिश करने की कोशिश कर रहा हूं matplotlib.pyplot

कोड इस तरह दिखता है:

def plottest():
    import numpy as np
    import matplotlib.pyplot as plt


    a=np.random.rand(10,)
    b=np.random.rand(10,)
    c=np.random.rand(10,)


    plt.plot(a,label='a')
    plt.plot(b,label='b')
    plt.plot(c,label='c')
    plt.legend(loc='upper left')
    plt.ylabel('mag')
    plt.xlabel('element)')
    plt.show()

    e=np.random.rand(10,)
    f=np.random.rand(10,)
    g=np.random.rand(10,)


    plt.plot(e,label='e')
    plt.plot(f,label='f')
    plt.plot(g,label='g')
    plt.legend(loc='upper left')
    plt.ylabel('mag')
    plt.xlabel('element)')
    plt.show()

दुर्भाग्य से मैं एक ही प्लॉट प्राप्त कर रहा हूं (वास्तव में कुछ अन्य कोड से जो मैंने चला और कुछ समय पहले पूरा किया) कोई फर्क नहीं पड़ता कि मैं क्या करता हूं।

इसी तरह के कोड ने मेरे लिए पहले काम किया है।

मैंने इन सवालों पर गौर किया है:

"स्लेट को कैसे साफ़ करें"?

Matplotlib pyplot शो () एक बार बंद होने के बाद काम नहीं करता है

(अजगर) matplotlib pyplot शो () .. अवरुद्ध या नहीं?

और उपयोग करने की कोशिश plt.show(), plt.clf()और plt.closeकोई लाभ नहीं हुआ।

कोई विचार?

जवाबों:


114

मैं इसके बजाय इसे बंद करने और फिर से खोलने, खिड़की के आकार को बनाए रखने और आपको बेहतर प्रदर्शन और बहुत बेहतर स्मृति उपयोग के बजाय वर्तमान आंकड़े को साफ़ करने के लिए plt.clf()प्रत्येक के बाद उपयोग करूंगा ।plt.show()

इसी तरह, आप plt.cla() वर्तमान अक्षों को साफ़ करने के लिए कर सकते हैं ।

एक विशिष्ट अक्ष को साफ़ करने के लिए , उपयोगी जब आपके पास एक आकृति के भीतर कई अक्ष होते हैं, तो आप उदाहरण के लिए कर सकते हैं:

fig, axes = plt.subplots(nrows=2, ncols=2)

axes[0, 1].clear()

48

मुझे पता चला कि यह व्यवहार केवल एक विशेष स्क्रिप्ट को चलाने के बाद होता है, प्रश्न में एक के समान। मुझे नहीं पता कि ऐसा क्यों होता है।

अगर मैं डालता हूं तो यह काम करता है (ग्राफ़ को रिफ्रेश करता है)

plt.clf()
plt.cla()
plt.close()

हर के बाद plt.show()

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