如何在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
相关产品推荐
相关产品推荐

