首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >networkD3 vs igraph中的着色方案

networkD3 vs igraph中的着色方案
EN

Stack Overflow用户
提问于 2016-08-06 00:31:08
回答 1查看 685关注 0票数 1

我有一个网络,我用之前的分析对每个节点进行了表征-并按如下方式分配了颜色:

代码语言:javascript
复制
plot.igraph(g, layout=layout.fruchterman.reingold(g), vertex.color=node_colors, vertex.label = node_names)

变量'node_colors‘是从前面的分析中得到的一个向量,这样颜色将与顶点放置/聚类重合。

然而,当我尝试在networkD3中实现个性化的配色方案时,我得到了一个“未使用的参数”错误:

代码语言:javascript
复制
data<-igraph_to_networkD3(g, group = members)
forceNetwork(Links = data$links, Nodes = data$nodes, Source = 'source', Target = 'target', NodeID = 'value', Nodesize = 'size', Group = "group", colourScale=node_colors, zoom = T, legend = T, opacityNoHover = TRUE)

错误:警告:forceNetwork中的错误:未使用的参数(colorScale = node_colors)

NetworkD3似乎只是创建了自己的配色方案……因此,当我省略参数‘colorScale=node_color’时,我会得到以下结果:

但正如您所看到的,颜色与曲线图的颜色并不同步。

有谁知道如何在networkD3中创建个性化的配色方案(包含一系列颜色的矢量

EN

回答 1

Stack Overflow用户

发布于 2017-04-14 23:14:38

您可以使用networkD3包附带的JS()函数传递Javascript代码。在Javascript中,您可以使用十六进制代码来指定颜色。下面是一个示例:

代码语言:javascript
复制
YourColors <- 'd3.scaleOrdinal().range([ "#FFA500", "#4169E1",  "#32CD32",
                                         "#FFC0CB", "#8A2BE2", "#FF6347"]);'

forceNetwork(Links = data$links, Nodes = data$nodes, 
             Source = 'source', Target = 'target', 
             NodeID = 'value', Nodesize = 'size', Group = "group",
             ######################### 
             colourScale = JS(YourColors), 
             #########################
             zoom = T, legend = T, opacityNoHover = TRUE)

如果您想将特定的颜色绑定到特定的变量,您可以使用

代码语言:javascript
复制
    YourColors <- 'd3.scaleOrdinal()
                  .domain(["variable1", "variable2", "variable3"])
                  .range(["#7FFF00", "#A52A2A", "#E6E6FA"])'
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38793947

复制
相关文章

相似问题

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