You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pyvis在浏览器绘制动态网络图的问题及代码异常求助

使用Pyvis在浏览器绘制动态网络图的问题及代码异常求助

嘿,我看到你在尝试用Pyvis生成交互式动态网络图时遇到了显示问题,而且已经能成功用Matplotlib画出静态图,咱们来一步步搞定这个动态图的问题~

首先你收到的那个警告信息其实已经给出了核心解决方案:

Warning: When cdn_resources is 'local' jupyter notebook has issues displaying graphics on chrome/safari. Use cdn_resources='in_line' or cdn_resources='remote' if you have issues viewing graphics in a notebook.

你当前初始化Pyvis的Network对象时,只设置了notebook=True,但没有指定cdn_resources参数,它默认会用local模式,这在Chrome/Safari的Jupyter环境里就容易出显示问题。

解决步骤:

修改Network的初始化代码,加上cdn_resources参数,选in_line或者remote都可以:

  • cdn_resources='in_line':会把所有需要的资源直接嵌入到生成的HTML文件里,不需要联网就能查看,适合离线场景
  • cdn_resources='remote':会从CDN加载资源,生成的HTML文件更小,但需要联网

修改后的完整可运行代码如下:

import pandas as pd
import networkx as nx
from pyvis.network import Network

# 初始化数据(保持你的原始数据不变)
data = [{'Circuit': 'html','Description':1, 'Duration':10.2, 'Source':'Westchester', 'Destination':'Davie', 'Picklist':1000, 'Postlist':50000.2},
{'Circuit': 'html', 'Description':2, 'Duration':12.1, 'Source':'Westchester', 'Destination':'Davie', 'Picklist':3000, 'Postlist':40000.1},
{'Circuit': 'html', 'Description':3, 'Duration':11.3, 'Source':'Westchester', 'Destination':'Davie', 'Picklist':7000, 'Postlist':50000.2},
{'Circuit': 'html', 'Description':3, 'Duration':8.1, 'Source':'West', 'Destination':'San Bernardino', 'Picklist':3000, 'Postlist':40000.0},
{'Circuit': '.net', 'Description':4, 'Duration':6.2, 'Source':'Queens', 'Destination':'San Bernardino', 'Picklist':5000, 'Postlist':6000.1},
{'Circuit': '.net', 'Description':3, 'Duration':20.1, 'Source':'Queens', 'Destination':'Los Angeles', 'Picklist':5000, 'Postlist':4000.1},
{'Circuit': '.net', 'Description':2, 'Duration':15.5, 'Source':'Brooklyn', 'Destination':'San Francisco', 'Picklist':5000, 'Postlist':9000.3},
{'Circuit': '.net', 'Description':4, 'Duration':7.7, 'Source':'Brooklyn', 'Destination':'Davie', 'Picklist':6000, 'Postlist':10000},
{'Circuit': '.net', 'Description':4, 'Duration':7.7, 'Source':'Los Angeles', 'Destination':'Westchester', 'Picklist':6000, 'Postlist':10000},
{'Circuit': '.net', 'Description':4, 'Duration':7.7, 'Source':'San Berdarnino', 'Destination':'Westchester', 'Picklist':6000, 'Postlist':10000}]

df = pd.DataFrame(data)

# 构建NetworkX图
G = nx.from_pandas_edgelist(df, source='Source', target='Destination', edge_attr='Picklist')

# 关键修改:添加cdn_resources参数
net = Network(notebook=True, cdn_resources='in_line')
net.from_nx(G)

# 生成并显示交互式动态网络图
net.show('example.html')

额外小提示:

如果你是在Jupyter Lab里运行,修改参数后还是看不到图,可能需要安装jupyterlab_iframe扩展来支持HTML嵌入显示,执行以下命令安装:

pip install jupyterlab_iframe
jupyter labextension install jupyterlab_iframe

先试试修改cdn_resources参数的方案,这应该就能解决你遇到的显示问题啦!

备注:内容来源于stack exchange,提问作者ASH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 10:33:03