tnt*_*tnt 82 matplotlib ipython-notebook
我需要在文件中创建一个图形而不在IPython笔记本中显示它.我不是之间的相互作用明确IPython,并matplotlib.pylab在这方面.但是,当我调用pylab.savefig("test.png")当前数字时,除了保存之外,还会显示test.png.当自动创建大量绘图文件时,这通常是不合需要的.或者在需要由另一个应用程序进行外部处理的中间文件的情况下.
不确定这是笔记本matplotlib还是IPython笔记本问题.
sta*_*oat 140
这是一个matplotlib问题,您可以通过使用不向用户显示的后端来解决这个问题,例如'Agg':
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.plot([1,2,3])
plt.savefig('/tmp/test.png')
Run Code Online (Sandbox Code Playgroud)
编辑:如果您不想失去显示绘图的功能,请关闭交互模式,并仅plt.show()在准备好显示绘图时调用:
import matplotlib.pyplot as plt
# Turn interactive plotting off
plt.ioff()
# Create a new figure, plot into it, then close it so it never gets displayed
fig = plt.figure()
plt.plot([1,2,3])
plt.savefig('/tmp/test0.png')
plt.close(fig)
# Create a new figure, plot into it, then don't close it so it does get displayed
plt.figure()
plt.plot([1,3,2])
plt.savefig('/tmp/test1.png')
# Display all "open" (non-closed) figures
plt.show()
Run Code Online (Sandbox Code Playgroud)
Moj*_*adi 50
我们不需要plt.ioff()或plt.show()(如果我们使用%matplotlib inline).你可以不用测试上面的代码plt.ioff(). plt.close()具有重要作用.试试这个:
%matplotlib inline
import pylab as plt
# It doesn't matter you add line below. You can even replace it by 'plt.ion()', but you will see no changes.
## plt.ioff()
# Create a new figure, plot into it, then close it so it never gets displayed
fig = plt.figure()
plt.plot([1,2,3])
plt.savefig('test0.png')
plt.close(fig)
# Create a new figure, plot into it, then don't close it so it does get displayed
fig2 = plt.figure()
plt.plot([1,3,2])
plt.savefig('test1.png')
Run Code Online (Sandbox Code Playgroud)
如果您在iPython中运行此代码,它将显示第二个图,如果您添加 plt.close(fig2)到它的末尾,您将看不到任何内容.
总之,如果你关闭数字plt.close(fig),它将不会显示.