如果我注释掉'%matplotlib inline',代码运行正常 但是,如果我将'%matplotlib inline'取消注释,'fig,axes = plt.subplots(nrows = x_p,ncols = y_p)'开始创建空白图,并且下面的代码触发错误,如下所示。知道为什么吗?
答案 0 :(得分:1)
默认情况下,数字在单元格末尾关闭。这意味着pyplot(plt
)已经忘记了在下一个单元格中工作的轴。
%config InlineBackend
告诉我们:
InlineBackend.close_figures =
<Bool>
当前:错误
关闭每个单元格末尾的所有数字 当 True 时,确保每个单元格都没有活动数字,但它也是 意味着必须跟踪引用以便编辑或重绘 后续细胞中的数据。这种模式非常适合笔记本电脑 来自其他细胞的残留图可能会令人惊讶 当 False 时,必须调用figure()来创建新数字。这意味着 gcf()和getfigs()可以引用在其他单元格中创建的数字,以及 可以使用pylab / pyplot方法继续编辑活动图 参考当前活跃的数字。
因此,解决方案是将.close_figures
设置为False:
%config InlineBackend.close_figures=False
为了防止在单元格末尾自动输出活动数字,您可以设置plt.ioff()
。
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.close_figures=False
plt.ioff()
fig, axes = plt.subplots(ncols=2)