2012-05-16 113 views
119

我开始严重依赖IPython笔记本应用程序来开发和记录算法。太棒了;但有一些似乎应该是可能的,但我无法弄清楚如何做到这一点:将图像插入IPython笔记本markdown

我想插入本地图片到我的(本地)IPython的笔记本降价中记录的算法来帮助。我知道足够添加类似<img src="image.png">的降价,但就我的知识而言,这是大约。我假设我可以将映像放在127.0.0.1:8888(或某个子目录)所表示的目录中以便能够访问它,但我无法弄清楚该目录在哪里。 (我正在开发一个mac)。那么,是否有可能做到我想要做的事情而不会有太多麻烦?

回答

110

笔记本目录内的文件在“files /”url下可用。所以,如果它是在基本路径,这将是<img src="files/image.png">,及子目录等也都是可供选择:<img src="files/subdir/image.png">

更新:开始的IPython 2.0,该files/前缀不再需要(参见release notes) 。所以现在解决方案<img src="image.png">只是按预期工作。

+0

什么是“笔记本目录”?你是说图像应该和* .ipynb文件在同一个目录下吗?我试过了,但没有奏效。 – benpro

+2

啊,你可能使用0.12,不是吗?当前只能在主服务器上使用本地文件。是的,“笔记本目录”是笔记本电脑(.ipynb文件)的目录。 – minrk

+61

既然你在降价,为什么不使用'![caption](files/image.png)'? – kynan

2

民克的答案是正确的。

然而,我发现,图像出现在打印预览破

这种情况的解决方法是使用<img src="../files/image.png">,而不是(在Chrome浏览器中运行的IPython的版本0.13.2的蟒蛇分布在我的Windows机器上)。

这使图像在打印视图和普通的iPython编辑视图中均正确显示。

更新:自从我升级到iPython v1.1.0之后,由于打印视图不再存在,因此不再需要此解决方法。事实上,您必须避免这种解决方法,因为它会阻止nbconvert工具查找文件。

54

我使用ipython 2.0,所以只是两行。

from IPython.display import Image 
Image(filename='output1.png') 
+19

这是正确的方法在* code *单元格中显示图像。 minrk的回答是在* markdown *单元格中显示图像的正确方法。 – Mike

+2

使用jupyter笔记本4.2.0,它不显示图像,除非我也调用'display': 'from IPython.display import Image,display;显示(图像(文件名='output1.png'))' –

+0

@戈麦斯,它为我工作,谢谢 – Bravo

5

我把IPython笔记本放在与图像相同的文件夹中。我使用Windows。图像名称是“phuong huong xac dinh.PNG”。

在降价:

<img src="phuong huong xac dinh.PNG"> 

代码:

from IPython.display import Image 
Image(filename='phuong huong xac dinh.PNG') 
+0

文档参考http://ipython.readthedocs.io/en/stable/api/generated/IPython.display.html #IPython.display.Image,尽管使用markdown('![alt text](foo.png)'标题')'是不错的选择,除非需要使用来自api的附加参数。“ – michael

12

IPython的/ Jupyter现在具有用于可经由拷贝插入图像和粘贴或拖动&降的扩展模块的支持。

https://github.com/ipython-contrib/IPython-notebook-extensions

拖动&降扩展似乎在大多数浏览器

https://github.com/ipython-contrib/IPython-notebook-extensions/tree/master/nbextensions/usability/dragdrop

工作,但复制并粘贴只在Chrome工作。

+0

这个答案需要一些upvotes。很少有人知道关于Ipython扩展。 – Thoran

+0

刚刚尝试drag'n'drop在Safari和Chrome,不为我工作(OSX,Py3,所有更新) –

+0

您发布的第二个链接已损坏 - 扩展不再支持? –

83

到目前为止给出的答案大部分都是错误的方向,建议加载额外的库并使用代码而不是标记。在Ipython/Jupyter笔记本中,它非常简单。确保细胞确实是在标记和显示图像的使用:

![alt text](imagename.png "Title") 

而且优势比较建议的其他方法是,你可以显示所有常见的文件格式包括JPG,PNG和GIF(动画)。

+2

是的。这是使用香草减价和无外部库的理想解决方案。谢谢菲利普 –

+0

好奇你怎么知道这个命令。它对Jupyter来说是独一无二的,还是这种语言(可能是乳胶格式),你在Jupyter中使用它来添加图像? –

+0

@ Alex G,Markdown是一种带有纯文本格式语法的语言,可以将其转换为HTML和许多其他格式。 Markdown通常用于使用纯文本编辑器创建富文本。查看以下链接以了解语法:https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet –

2

首先确保你是在IPython的笔记本电池

这是用另一种方式被别人<img src="myimage.png">提出的方法降价编辑模式:

![title](img/picture.png) 

它似乎也如果标题丢失,则工作:

![](img/picture.png) 

请注意路径中不应有引号。不知道这是否适用于带有空格的路径!

1

jupyter笔记本的最后版本接受本机复制/粘贴图像