簡體   English   中英

Matplotlib:圖標題沒有更新?

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

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