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

如何在visNetwork/vis.js中控制自环边与节点的接触位置?

在visNetwork中控制自环边与节点的接触位置

可以通过vis.js的原生配置参数实现脚本控制,无需手动调整。visNetwork基于vis.js封装,支持直接传递边的自环位置配置:

方法1:给单个自环边指定位置

修改edges数据框,添加selfReferencePosition参数,支持预定义方向或自定义坐标:

library(visNetwork)
nodes <- data.frame(id = 1:2)
edges <- data.frame(from = c(1, 1),
                    to = c(1, 2),
                    arrows = c("to,from", "to"),
                    # 给第一条自环边指定右侧接触点
                    selfReferencePosition = I(list("right")))
visNetwork(nodes, edges)

如果需要更精确的自定义位置,可用x/y坐标(取值范围-1到1,对应节点相对位置):

edges <- data.frame(from = c(1, 1),
                    to = c(1, 2),
                    arrows = c("to,from", "to"),
                    # 接触点设为节点右上区域(x=1右侧,y=0.5上半部分)
                    selfReferencePosition = I(list(list(x = 1, y = 0.5))))
visNetwork(nodes, edges)

方法2:全局设置所有自环边位置

如果所有自环边都用统一位置,可通过visEdges全局配置:

visNetwork(nodes, edges) %>%
  visEdges(selfReferencePosition = "bottom") # 所有自环边接触点设为底部

参数说明

  • 预定义方向可选值:"top"、"right"、"bottom"、"left"
  • 自定义坐标:x控制左右(-1左,1右),y控制上下(-1下,1上),组合可定位到节点任意边缘位置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 09:12:56