使用jupyter notebook

时间:2017-04-27 18:09:57

标签: python matplotlib jupyter-notebook

我有下面的代码,它适用于单个情节,但我试图创建一个带有1x2子图的新情节。第二个图将与第一个图相同,只是在另一个子图中。

# This code works fine as a single plot
%matplotlib inline
import time
import pylab as pl
from IPython import display
for i in range(10):
    pl.clf()
    pl.plot(pl.randn(100))
    display.display(pl.gcf())
    display.clear_output(wait=True)
    time.sleep(1.0)

我不熟悉pylab,但上面的情节与我在nex上找到的pyplot代码相比运行得非常顺利,我试图弄清楚如何实现这个代码与子情节。

#can't implement it to a plot with subplots
%matplotlib inline
import time
import pylab as pl
from IPython import display
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True, sharex = True, figsize = (10,5))
for i in range(10):
    pl.clf()
    ax1.plot(pl.randn(100),)
    ax2.plot(pl.randn(50))
    display.display(pl.show())
    display.clear_output(wait=True)
    time.sleep(1.0)

但是,我的尝试没有输出图表。 我玩过这段代码,但我似乎无法干净利落地工作。

谢谢你。

1 个答案:

答案 0 :(得分:1)

要使用子图可视化绘图,您应该知道matplotlib中FigureAxes之间的差异。基本上,轴属于图形,您想要在轴上绘制数据,但显示图形。只需调用Figure即可获得Axespl.subplots(nrow, ncol)个实例。看看下面的代码是否符合您的要求:

%matplotlib inline
import time
import pylab as pl
from IPython import display
for i in range(10):
    pl.clf()
    f, ax = pl.subplots(1, 2)
    ax[0].plot(pl.randn(100))
    ax[1].plot(pl.randn(100))
    display.display(f)
    display.clear_output(wait=True)
    time.sleep(1.0)