[英]Matplotlib.pyplot: Open new figure environment
在 pyplot 中,當我運行plt.plot(x)
,它似乎在內部運行以下邏輯:
1) 如果圖形已經打開,則使用該圖形,否則創建一個新圖形。
2) 如果該圖中的軸已經打開,則使用該軸,否則創建一個新軸。
3)在該軸上繪圖。
我想知道如何在下次調用某些繪圖命令時強制步驟 (1) 打開一個新圖形。 就像是
plt.plot(x1)
with new_figure_environment(): # Ensure that plot commands within this go to new figures
some_function()
plt.show()
如果some_function
包含:
def some_function():
plt.plot(x1)
然后我想打開一個新圖形,但如果它不包含繪圖功能,那么我不包含。
如果您想使用fig1 = plt.figure(1)
, fig2 = plt.figure(2)
等繪制特定圖形編號。要在特定圖形中繪制圖形,請定義軸ax1 = fig1.gca()
gca = 獲取當前軸,而不是使用plt.plot()
使用ax1.plot()
在圖 1 中繪圖
import matplotlib.pyplot as plt
x1 = [0,1]
x2 = [0,2]
y1 = [0,1]
y2 = [0,-1]
fig1 = plt.figure(1)
ax1 = fig1.gca()
fig2 = plt.figure(2)
ax2 = fig2.gca()
ax1.plot(x1,y1,'b')
ax2.plot(x2,y2,'r')
plt.show()
如果要創建 5 個數字,請使用列表:
fig = []
ax = []
for i in range(5) :
fig.append(plt.figure(i))
ax.append(fig[i].gca())
如果圖 1 已經打開並且您想繪制一條額外的曲線,您只需鍵入以下幾行:
fig3 = plt.figure(1)
ax3 = fig1.gca()
ax3.plot(x1,y2,'g')
fig3.canvas.draw()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.