[英]Matplotlib: Figure title does not update?
我需要制作一個 plot 並多次更新(100 或 1000 次),所以我需要 Python 快速更新它。 我找到了一個很好的解決方案,但我不允許添加評論。
這是參考答案的代碼:
import time
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
line, = ax.plot(np.random.randn(100))
fig.canvas.draw()
plt.show(block=False)
tstart = time.time()
num_plots = 0
while time.time()-tstart < 5:
line.set_ydata(np.random.randn(100))
ax.draw_artist(ax.patch)
ax.draw_artist(line)
fig.canvas.blit(ax.bbox)
fig.canvas.flush_events()
num_plots += 1
print(num_plots/5)
為了獲得完美的解決方案,除了行之外,我還需要更新 plot 的標題。 例如,我想在圖的標題中打印迭代編號(或循環的一些計數器)。
這個怎么做?
我嘗試在 while 循環中更新圖形的標題,但標題會打印 num_plots 的第一個值,然后是最后一個值,中間沒有任何內容。 更具體地說,我添加了
ax.set_title('num_plots = ' + str(num_plots))
作為 while 循環內的最后一行,它會導致這種行為,您可以看到標題僅在循環結束時更新(即使指令在其中):單擊此處查看動畫 gif
您可以在title
返回的文本 object 中設置字符串,就像在 plot 返回的行 object 中設置 ydata 一樣:
titl = ax.set_title('')
while time.time()-tstart < 5:
...
titl.set_text(f'num_plots = {num_plots}')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.