hr0*_*r02 0 visualization r legend edges
我正在使用visNetwork来可视化图形,但是我需要基于边缘颜色引入图例。边缘颜色取决于边缘属性及其本质上的动态。我尝试使用visGroups / visLegend,但遇到多个错误。PFB可重现的示例。
library(igraph)
library(visNetwork)
gg <- graph.atlas(711)
V(gg)$name=1:7
gg=set_edge_attr(gg,"Department",E(gg)[1:10],c("A","B","C","A","E","C","G","B","C","A"))
E(gg)$label=E(gg)$Department
F2 <- colorRampPalette(c("red", "blue","orange","violet","cyan"), bias = length(unique(E(gg)$Department)), space = "rgb", interpolate = "linear")
colCodes <- F2(length(unique(E(gg)$Department)))
edges_col <- sapply(E(gg)$Department,function(x) colCodes[which(sort(unique(E(gg)$Department)) == x)])
E(gg)$color <-edges_col
datatest = toVisNetworkData(gg)
visNetwork(datatest$nodes,datatest$edges) %>% visIgraphLayout(layout="layout_in_circle")
Run Code Online (Sandbox Code Playgroud)
我需要图例,例如红色-A,蓝色-C等。
请帮助。
visLegend首先基于节点组,但是您也可以手动设置节点和/或边线图例。(?visLegend)
以您为例:
# data.frame from edges legend
ledges <- data.frame(color = unique(edges_col),
label = unique(names(edges_col)))
visNetwork(datatest$nodes,datatest$edges) %>% visIgraphLayout(layout="layout_in_circle") %>%
visLegend(useGroups = F, addEdges = ledges)
Run Code Online (Sandbox Code Playgroud)