【发布时间】:2016-07-04 05:46:12
【问题描述】:
我正在尝试在 Jupyter 笔记本中进行“实时”绘图。 该示例可以在here 找到。代码如下:
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as pl
from random import randint
from time import sleep
from ipywidgets import FloatProgress
from IPython import display
siz = 10
dat = np.zeros((siz, siz))
fig = pl.figure()
axe = fig.add_subplot(111)
img = axe.imshow(dat)
num = 1000
prgBar = FloatProgress(min=0, max=num-1)
display.display(prgBar)
for i in range(num):
prgBar.value = i
pos = (randint(0, siz-1), randint(0, siz-1))
dat[pos] += 1
img.set_data(dat)
img.autoscale()
#sleep(0.01)
我的目标是查看情节如何随着每次迭代而变化。 我还尝试通过 pl.ion() 设置交互式模块,将后端更改为内联,调用 pl.draw(),但没有一个工作。顺便说一句,进度条工作得很好......
感谢拉德克
【问题讨论】:
-
看看
%matplotlib notebook,它为您提供了一个完整的交互式后端。 -
您需要将您的图形放在与循环不同的单元格中,否则它应该可以工作。
-
如果您查看我发布的链接,您会发现它们位于不同的 cels 中。
标签: python matplotlib real-time interactive jupyter