如何将图形从IPython笔记本导出到文件

如何将图形从IPython笔记本导出到文件,python,matplotlib,ipython-notebook,Python,Matplotlib,Ipython Notebook,我将IPython笔记本与--pylab inline选项一起使用,因为我不希望绘图显示在不同的窗口中。现在我想将我在笔记本中看到的绘图保存为PDF或PNG文件 一些代码示例使用 import matplotlib as plt plt.savefig("figure.png") # save as png 但这在内联模式下似乎不起作用 当然,我可以简单地保存从浏览器中生成的PNG,但是我想用一行Python来实现这一点。我还对PDF导出感兴趣。试试这个(注意,文件会保存到默认的笔记本文件夹

我将IPython笔记本与
--pylab inline
选项一起使用,因为我不希望绘图显示在不同的窗口中。现在我想将我在笔记本中看到的绘图保存为PDF或PNG文件

一些代码示例使用

import matplotlib as plt

plt.savefig("figure.png") # save as png
但这在内联模式下似乎不起作用

当然,我可以简单地保存从浏览器中生成的PNG,但是我想用一行Python来实现这一点。我还对PDF导出感兴趣。

试试这个(注意,文件会保存到默认的笔记本文件夹):

如果您想要
png
只需将其更改为
'sample.png'


请注意,
savefig()
调用应与绘图命令位于同一笔记本单元中。

如果要将绘图保存到其他文件夹,只需在路径中指定文件夹,如:“home/foo/bar/sample.pdf”。更改默认目录还将重新定位笔记本文件。@cls首先将
*.ipynb
文件复制到所需的目录。然后用
$ipython notebook--pylab=inline--notebook dir=/path/to/my/notebooks
@root启动笔记本服务器:看起来关键点是将
savefig()
与绘图命令放在同一单元格中。事实上,一个单元格中的
plot()
和下一个单元格中的
savefig()
不会保存文件(对于Mac OS X,通过MacPorts的IPython 0.13)。如果您的回答中强调了这一点,那就太好了。@EOL@ZachDwiel您知道为什么
savefig()
必须与绘图命令位于同一单元格中吗?@braunmagrin问得好。一开始,我对此感到惊讶。我可以猜,当你打开笔记本时,没有当前的数字,因为笔记本通常包含很多数字。根据扩展,退出单元格时,没有当前图形,因此savefig()没有目标。再一次,我只是在猜测…我不确定为什么最后绘制的图形不能按惯例是当前图形。我使用这个小黑客
jupyter nbconvert--来标记*.ipynb
。它为每个笔记本生成一个存储图像的目录
plot(range(80))
xlabel('foo')
ylabel('bar')
legend(['myline'])
axis([0, 80, 0, 120])
savefig('sample.pdf')