Jupyter笔记本Matplotlib的数字显示很小,直到完成单元

mit*_*tch 5 matplotlib jupyter-notebook

我正在尝试制作一个笔记本,其中将long for循环产生的数据逐点放置在图形中。但是,在使用时%matplotlib notebookfig.canvas.draw()图形会变得很小,直到单元格运行完毕。(实际上,我有很多这些图,当使用更多子图时,它们甚至更小。)

在这里,我的代码至少在使用(最新)jupyter-core 4.3.0和(最新)matplotlib 2.0.2的OS X上,重现了jupyter笔记本中的行为。

%matplotlib notebook
import time
import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, 1)
for _ in range(5):
    ax.plot([1,2,3], [1,2,3])
    fig.canvas.draw()
    time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

在单元执行期间,我得到了这个图

小图片

当单元完成执行时(5秒后),我得到了

在此处输入图片说明

我希望即使在单元执行过程中也能获得更大的图像。我究竟做错了什么?

mit*_*tch 2

正如 ImportanceOfBeingErnest 提出的,一种解决方案是将图形创建放在自己的单元格中。

[1] %matplotlib notebook
    import time
    import matplotlib.pyplot as plt

[2] fig, ax = plt.subplots(1, 1)

[3] for _ in range(5):
        ax.plot([1,2,3], [1,2,3])
        fig.canvas.draw()
        time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

编辑:如果您一次运行所有单元格,则此解决方案不起作用。