您好我想在不停止计算的情况下在matplotlib中显示一些数字。我希望这个数字在计算之后立即出现,例如:
import numpy as np
import pylab as py
x=np.linspace(0,50,51)
y=x
fig, axs = plt.subplots(1, 1)
cs = axs.plot(x, y)
现在我想显示情节而不阻止进行其他计算的可能性
plt.show(block=False)
plt.pause(5)
我创建第二个情节
y1=2*x
fig1, axs1 = plt.subplots(1, 1)
cs1 = axs1.plot(x, y1)
plt.show()
然而,第一次冻结(在我添加的5秒后暂停),直到我最后调用plt.show()。至关重要的是,第一个数字显示并起作用,然后在计算后再添加一个数字。
答案 0 :(得分:0)
以下代码应该做你想要的。我是在IPython Notebook中做到的。
from IPython import display
import matplotlib.pyplot as plt
def stream_plot(iterable, plotlife=10.):
for I in iterable:
display.clear_output(wait=True)
output = do_calculations_on_i(I)
plt.plot(output)
display.display(plt.gca());
time.sleep(plotlife); #how long to show the plot for
wait = True将等待清除旧图,直到它有新的绘图或打印任何其他输出。
我把睡眠放在那里,所以我可以在擦除之前观察每个情节。这对于必须观察几个实体的分布非常有用。你想要做什么可能需要也可能不需要它。