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

Pyvis如何实现节点间直线连接及指定层级连线样式?

Pyvis实现层级直角连线方案

Pyvis完全可以实现你需求的节点间层级关联的直角连线效果,仅需调整你现有代码中的配置项即可匹配示例图的连线样式。

核心修改点

你当前代码中edges配置的"smooth": false会生成两点之间的直连斜线,要实现示例图的阶梯状直角折线,只需调整edges的平滑模式为层级专属的折线类型即可:

  • 将edges.smooth从false改为启用状态,指定type: "hierarchical",同时设置roundness: 0获得无圆角的纯直角折线
  • 可按需调整连线宽度width参数,匹配示例图的线条粗细

修改后完整代码

from pyvis.network import Network

net = Network(notebook=True, height = 1000, width = 2000, font_color="black", bgcolor ='black', heading='Network Alto')

# 节点定义和你原有代码完全一致
net.add_node('EXCESS RET. 1.0%', shape='box', color = '#e40513')
net.add_node('CARRY 2.8%', shape='box', color = '#716f71')
net.add_node('MOMEMTUM -1.7%', shape='box', color = '#d06a26')
net.add_node('VALUE -0.1%', shape='box', color = '#018480')

# 子维度节点
net.add_node('EQUITIES -0.1%', shape='box', color = '#499a35')
net.add_node('BONDS -0.1%', shape='box', color = '#01a3e1')
net.add_node('CURRENCIES -0.1%', shape='box', color = '#9750e3')

# 边定义和原有代码一致
net.add_edge('EXCESS RET. 1.0%','CARRY 2.8%',color='white')
net.add_edge('EXCESS RET. 1.0%','MOMEMTUM -1.7%',color='white')
net.add_edge('EXCESS RET. 1.0%','VALUE -0.1%',color='white')

net.add_edge('CARRY 2.8%','EQUITIES -0.1%',color='white')
net.add_edge('CARRY 2.8%','BONDS -0.1%',color='white')
net.add_edge('CARRY 2.8%','CURRENCIES -0.1%',color='white')

# 仅修改了edges部分的配置
net.set_options("""var options = {
  "edges": {
    "color": {
      "inherit": false
    },
    "smooth": {
      "enabled": true,
      "type": "hierarchical",
      "roundness": 0
    },
    "width": 2
  },
  "layout": {
    "hierarchical": {
      "enabled": true,
      "levelSeparation": 200,
      "nodeSpacing": 60,
      "direction": "LR",
      "sortMethod": "directed"
    }
  },
  "physics": {
    "hierarchicalRepulsion": {
      "centralGravity": 0
    },
    "minVelocity": 0.75,
    "solver": "hierarchicalRepulsion"
  }
}""")

net.show("basic.html")

效果说明

修改后生成的连线会自动适配层级布局,从父节点水平伸出后垂直转折连接到对应子节点,完全匹配你提供的示例图的连线样式。如果需要调整折线的转折位置,可修改levelSeparation参数调整层级间距,或者调整smooth.roundness参数获得带圆角的折线效果。

内容的提问来源于stack exchange,提问作者Flo Cp

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:15:02