首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在visNetwork中为边缘颜色添加图例

在visNetwork中为边缘颜色添加图例
EN

Stack Overflow用户
提问于 2016-07-27 01:20:40
回答 1查看 2.4K关注 0票数 0

我使用visNetwork来可视化一个图形,但是我需要介绍一个基于边缘颜色的图例。边缘颜色依赖于边缘属性及其本质的动态性。我试着使用visGroups/visLegend,但是出现了多个错误。PFB重复性实例。

代码语言:javascript
复制
    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") 

我需要红-甲,蓝-丙等传说。

帮帮忙吧。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-28 07:25:25

visLegend首先基于节点组,但也可以手动设置节点和/或边图例。(?visLegend)

例如,对你来说:

代码语言:javascript
复制
# 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)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38602251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档