【问题标题】:Making the edges of the visnetwork diagram straight in R在R中使visnetwork图的边缘笔直
【发布时间】:2023-03-24 19:11:03
【问题描述】:

给定的 visNetwork 脚本创建 visNetwork 图,如下面的快照所示。我的问题是,如果您看到第一个和第二个节点,则两者之间的边缘是弯曲的。有没有办法可以在不改变边缘长度的情况下使边缘笔直。附上截图供参考,请帮忙。

library(visNetwork)
nodes <- data.frame(id = 1:10,color = c(rep("blue",6), rep("red",3), 
rep("green",1)))
edges <- data.frame(from = c(1,2,3,3,4,5,6,7,8,9), to = 
c(2,3,4,8,5,6,7,8,9,10),length = c(2,1,1,1,1,1,1,1,1,1))
nodes = data.frame(nodes, level = edges$from)
visNetwork(nodes, edges, height = "500px", width = "100%") %>% 
visOptions(highlightNearest = list(enabled = T, degree = 2, hover = T)) %>%
visOptions(highlightNearest = F, nodesIdSelection = F, width = 500, height = 
500,autoResize = F) %>%
visEdges(smooth = T) %>% 
addFontAwesome() %>% visHierarchicalLayout(edgeMinimization = T,  
blockShifting = T , levelSeparation = 89 ) %>% 
visEdges(shadow = TRUE,
         arrows =list(to = list(enabled = TRUE, scaleFactor = 2)),
         color = list(color = "black", highlight = "red")) %>%
visLayout()

【问题讨论】:

    标签: javascript r igraph vis.js visnetwork


    【解决方案1】:

    只需将visEdges() 的smooth= 参数设置为FALSE:visEdges(smooth = FALSE)

    library(visNetwork)
    
    nodes <- data.frame(id = 1:10,color = c(rep("blue",6), 
                                            rep("red",3), 
                                            rep("green",1)))
    edges <- data.frame(from = c(1,2,3,3,4,5,6,7,8,9),
                        to = c(2,3,4,8,5,6,7,8,9,10),
                        length = c(2,1,1,1,1,1,1,1,1,1))
    nodes <- data.frame(nodes, level = edges$from)
    
    visNetwork(nodes, edges, 
               height = "500px", width = "100%",
               main = "Straight Edges") %>% 
      visHierarchicalLayout(edgeMinimization = T,
                            blockShifting = T , 
                            levelSeparation = 89 ) %>%
      visEdges(
        # =========================
               smooth = FALSE, # ========================= straight edges
        # =========================
               shadow = TRUE,
               arrows =list(to = list(enabled = TRUE, scaleFactor = 2)),
               color = list(color = "black", highlight = "red")
        )
    

    【讨论】:

    • 谢谢,在这里感谢您的努力。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 1970-01-01
    • 2019-01-18
    • 2018-03-11
    • 1970-01-01
    • 2018-10-14
    • 2023-04-02
    相关资源
    最近更新 更多