我有下面的代码,它适用于单个情节,但我试图创建一个带有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)
但是,我的尝试没有输出图表。 我玩过这段代码,但我似乎无法干净利落地工作。
谢谢你。答案 0 :(得分:1)
要使用子图可视化绘图,您应该知道matplotlib中Figure
和Axes
之间的差异。基本上,轴属于图形,您想要在轴上绘制数据,但显示图形。只需调用Figure
即可获得Axes
和pl.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)