[英]Adding a matplotlib plot to an existing plot saved as an image
[英]Adding a second plot to an existing matplotlib chart
我希望有一個在調用時將圖添加到現有圖表的函數。 現在我的空圖顯示出來了,但是調用函數似乎一直沒有發生,因為它一直等到我關閉圖表窗口。 然后,程序結束而無需重新打開圖表窗口。
import numpy as np
import matplotlib.pyplot as plt
import time
fig, ax = plt.subplots()
plt.show()
def plotting(slope, intercept):
x_vals = np.array(ax.get_xlim())
y_vals = intercept + slope * x_vals
ax.plot(x_vals, y_vals, '-')
plt.show()
plotting(10,39)
time.sleep(1)
plotting(5,39)
plt.show()
應該在腳本末尾被調用一次。 它將一直阻塞,直到關閉繪圖窗口。
您可以使用交互模式( plt.ion()
)並在中間步驟( plt.draw()
)繪制圖。 要獲得暫停,請不要使用time.sleep()
因為它會使應用程序從字面上休眠(可能導致凍結的窗口)。 而是使用plt.pause()
。 最后,您可以再次關閉交互模式( plt.ioff()
),最后調用plt.show()
,以使繪圖保持打開狀態。
import numpy as np
import matplotlib.pyplot as plt
plt.ion()
fig, ax = plt.subplots()
def plotting(slope, intercept):
x_vals = np.array(ax.get_xlim())
y_vals = intercept + slope * x_vals
ax.plot(x_vals, y_vals, '-')
plt.draw()
plotting(10,39)
plt.pause(1)
plotting(5,39)
plt.ioff()
plt.show()
將可選的關鍵字參數block=False
發送到plt.show()
。
說明:繪圖窗口阻止程序繼續運行。 發送此參數將允許程序繼續。 請注意,如果僅使用該參數並且程序結束,則繪圖窗口將關閉。 因此,您可能想在程序末尾調用plt.show(block=True)
或plt.waitforbuttonpress()
。
就個人而言,我會為自己的函數添加一個塊參數:
def plotting(slope, intercept, block=True):
x_vals = np.array(ax.get_xlim())
y_vals = intercept + slope * x_vals
ax.plot(x_vals, y_vals, '-')
plt.show(block=block)
plotting(10,39,False)
time.sleep(1)
plotting(5,39)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.