更改IPython工作目录将图像插入IPython笔记本降价
嗨,我已经阅读了上面的两个链接,第二个链接似乎最相关。这个人描述的内容——简单地调用子目录——对我来说不起作用。例如,我在'/Graphics/gephi.png'中有一个图像'gephi.pn'但当我写下以下时
from IPython.display import Image
path = "/Graphs/gephi.png"
i = Image(path)
i
没有图像弹出-是的。没有错误。除了一个空的方形框图像之外,什么都没有弹出。
澄清:当我将图像移动到常规导演时,图像会很好地弹出。我唯一的代码更改是path="gephi.png">
IPython的图像显示对象接受三种参数
第一种是原始图像数据(例如open(filename).read()
:的结果
with open("Graphs/graph.png") as f:
data = f.read()
Image(data=data)
第二种模型是从文件名加载图像。这在功能上与上面相同,但IPython从文件中读取:
Image(filename="Graphs/graph.png")
第三种形式是传递URL。可以使用外部URL,但相对URI将提供相对于笔记本自己目录的文件:
Image(url="Graphs/graph.png")
如果你不告诉IPython你指定的是其中的哪一个,而只是按位置传递一个参数:
Image("Graphs/graph.png")
IPython试图猜测你在这种情况下的意思:
- 如果它看起来像路径并且指向现有文件,则将其用作文件名
- 如果它看起来像URL,请将其用作URL
- 否则,回退将字符串嵌入为原始png数据
那#3是最混乱的根源。如果你给它传递一个不存在的文件名,你会得到一个破碎的图像:
Image("/Graphs/graph.png")
请注意,指向本地文件的URL必须是相对的。绝对URL通常是错误的:
Image(url="/Graphs/graph.png")
举例说明这些事情的笔记本。