防止情节出现在jupyter笔记本中

时间:2013-09-10 11:34:07

标签: python matplotlib jupyter-notebook ipython-notebook figures

如何防止在Jupyter笔记本中显示特定的情节?我在笔记本中有几个图,但我希望将它们的一部分保存到文件中,而不是在笔记本上显示,因为这会显着减慢。

Jupyter笔记本的最小工作示例是:

%matplotlib inline 
from numpy.random import randn
from matplotlib.pyplot import plot, figure
a=randn(3)
b=randn(3)
for i in range(10):
    fig=figure()
    plot(b)
    fname='s%03d.png'%i
    fig.savefig(fname)
    if(i%5==0):
        figure()
        plot(a)

如你所见,我有两种类型的图,a和b。我想要绘制和显示一个,我不希望显示b图,我只是想让它们保存在文件中。希望这会加快一些速度,并且不会用我不需要看的数字来污染我的笔记本。

感谢您的时间

6 个答案:

答案 0 :(得分:44)

也许只是清除轴,例如:

fig= plt.figure()
plt.plot(range(10))
fig.savefig("save_file_name.pdf")
plt.close()

不会在inline模式下绘制输出。如果真的清除数据,我无法解决。

答案 1 :(得分:25)

我可以通过使用功能

关闭交互模式来阻止我的数字显示
  

plt.ioff()

答案 2 :(得分:17)

要防止jupyter笔记本单元格的任何输出,您可以使用

启动单元格
%%capture

如果此处显示的所有其他方法都失败,这可能会有用。

答案 3 :(得分:3)

我是初学者,当你不希望通过以下方式看到笔记本中的输出时,离开内联模式:

%matplotlib auto

或:

%matplotlib

使用它:

%matplotlib inline

更好的解决方案是使用:

plt.ioff()

表示内联模式关闭。

希望它有所帮助。

答案 4 :(得分:3)

从IPython 6.0开始,还有另一个选项可以关闭内联输出(暂时或持久)。这已经引入in this pull request

你会使用" agg"后端不显示任何内联输出。

%matplotlib agg

看起来如果您先激活内联后端,则需要调用两次才能生效。

%matplotlib agg
%matplotlib agg

以下是它的行动方式

答案 5 :(得分:3)

在Jupyter 6.0上,我使用以下代码段选择性地不显示matplot lib图形。

import matplotlib as mpl

...

backend_ =  mpl.get_backend() 
mpl.use("Agg")  # Prevent showing stuff

# Your code

mpl.use(backend_) # Reset backend