簡體   English   中英

plt.plot(x,y)和plt.show()如何按照他們的方式工作?

[英]How do plt.plot(x,y) and plt.show() work the way they do?

我想知道matplotlib.pyplot的 plt.plot(x,y)plt.show()命令之間plt.plot(x,y)的基本主干過程。

詳細說明一下,這段代碼:

plt.plot(x , y)
plt.show()

顯示所需的圖形(沒有問題)。

另外,代碼:

plt.plot(x , y)
plt.plot(p , q)
plt.show()

工作得很好。 它顯示了由列表x和y以及p&q創建的兩個圖。

現在,在ipython中動態編碼時,我發現這里非常有趣。

In [73]: plt.plot(x , y)
#normal plotting function.
In [78]: plt.show()
#shows a graph as intended.
In [79]: plt.show()
#shows nothing.

現在,無論我多少次調用plt.show() (在我調用它之后),它根本不顯示圖形。 為什么會這樣?

PS:據我所知,可能有一個對象正在創建和刪除這個過程。 但我既不確定也不相信。

提前致謝。

Pyplot使用或是所謂的“statemachine”。 它存儲了許多數字和當前軸和圖的參考。 一旦調show ,所有數字都會顯示,一旦show返回,它們就會從狀態機中刪除。

在隨后的調用中show沒有數字可以顯示,因此不顯示輸出。

因此,有一些(可能是不成文的或隱式的)假設show在腳本中只調用一次。

值得注意的是,盡管從狀態機中刪除了數字,但它們仍會保留在內存中,直到它們關閉為止。 因此,它們可能會在某些情況下重復使用,具體取決於所需的工作流程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM