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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:13:23