0

我正在尝试在 Jupyter Lab 的笔记本中生成一个绘图并遇到一个奇怪的问题。对于绘图,我想使用图像更改节点的形状。当笔记本运行时,它会生成绘图但不渲染图像。但是,生成的 HTML 文件在加载到网络浏览器中时可以很好地呈现图像。

import os
import pyvis
import networkx as nx
from pyvis.network import Network

os.chdir('/my/path/to/my/JupyterWork') #as suggested in SO 65131541
graph = Network(height=800, width=800,notebook=True,directed=False)
graph.add_node("NodeName",shape="image",image='path/to/image.png',label="NodeName")
graph.add_node("NodeName2",shape="image",image='path/to/image2.png',label="NodeName2")

graph.show('test.html')

结果是,在笔记本中,边缘将连接两个空格(即我没有得到损坏的图像图标)。而如果我在浏览器中加载输出文件 test.html,我将看到image.png连接到image2.png

我尝试使用 HTTP 源, http://localhost:8888/path/to/image.png 但它同样不会加载到笔记本中,但会加载到浏览器中的 HTML 文件中。奇怪的是,我可以在 Jupyter Lab 控制台中查看图像

作为参考,Jupyter Lab 版本是 3.1.11

欢迎任何帮助、想法或反馈。

4

1 回答 1

0

好的,我相信这已经解决了。根据 GitHub 中一个线程的响应:https ://github.com/altair-viz/altair/issues/2318 ,我想到了通过它的 base64 编码地址来识别图像。

除了它与 GH 中的解决方案有些不同。相反,我使用了copy downloadable linkJupyter 为图像提供的图像,shareable link除了它包含附加到链接末尾的 _xsrf 值之外,它与它相同。

包括此可下载链接允许在 Jupyter 笔记本中呈现图像。

于 2021-09-13T19:39:27.287 回答