如何防止在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图,我只是想让它们保存在文件中。希望这会加快一些速度,并且不会用我不需要看的数字来污染我的笔记本。
感谢您的时间
答案 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