簡體   English   中英

Matplotlib.pyplot:打開新的圖形環境

[英]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.

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