如何在Pyvis中实现粗边(黑色)置于细边(灰色)上层?
在Pyvis中实现粗边覆盖细边的方案
可以实现这个需求。Pyvis基于vis.js渲染图形,边的渲染顺序是添加顺序,后添加的边会覆盖先添加的边。利用这一点,我们可以先绘制所有细的灰色基础边,再绘制需要突出的粗黑色边,就能让粗边叠在细边之上。
修改后的代码示例
import networkx as nx import numpy as np from pyvis.network import Network def rgb_to_hex(r, g, b): return '#{:02x}{:02x}{:02x}'.format(r, g, b) # 创建基础图 G = nx.complete_graph(20) net = Network() # 第一步:添加所有细灰色基础边 for u, v in G.edges(): net.add_edge(u, v, color="#cccccc", width=1) # 细灰色边,宽度固定为1 # 第二步:添加需要突出的粗黑色边(这里随机选择部分边演示) highlight_edges = np.random.choice(list(G.edges()), size=15, replace=False) for u, v in highlight_edges: net.add_edge(u, v, color="#000000", width=4) # 粗黑色边,宽度设为4 net.toggle_physics(False) net.save_graph("test.html")
关键说明
- 先添加的灰色细边作为底层,后添加的黑色粗边会覆盖在对应节点对的位置上
- 如果需要对所有边都实现“细灰底+粗黑顶”的效果,可以遍历所有边,先加细灰边再加粗黑边
- 调整
width参数可以控制粗细程度,color参数自定义颜色
内容的提问来源于stack exchange,提问作者NablaDelta
相关产品推荐
相关产品推荐

