为 igraph 中的图着色

问题描述 投票:0回答:1

我有一个网络数据,想绘制核心。有10个不同的核心,核心值是0,5,7,9,14,17,24,30,32,33,34.

我给了这个代码

colors <- rainbow(max(10))

plot(networkdf, 
     vertex.color = colors[coreness(networkdf, mode = "in")], 
     edge.width = E(networkdf)$weight)
legend("topright", 
       legend=c(0,5,7,9,14,17,24,30,32,33,34),
       col = colors,
       pch = 12,
       title = "Core")

当我运行该代码时,没有错误消息,但顶点没有颜色。有谁知道如何修理它?由于数据保护,我不能分享任何数据。

也许 igraph 中的数据集猕猴可以用作此代码的示例:https://cran.r-project.org/web/packages/igraphdata/igraphdata.pdf

data("macaque")
summary(macaque)
plot(macaque, 
     vertex.color = colors[coreness(macaque, mode = "in")], 
     edge.width = E(macaque)$weight)
legend("topright", 
       legend=c(0,5,7,9,14,17,24,30,32,33,34),
       col = colors,
       pch = 12,
       title = "Core")
r igraph
1个回答
0
投票

我认为您可能需要在

V(networkdf)
函数之外使用
plot()
提供顶点颜色,假设您的
networkdf
属于
igraph
类及其类型
list
。使用
E(networkdf)
也可以完成同样的操作。此外,颜色值的长度应与您的
vertices (node numbers)

的长度相同
library(igraph)

colors <- rainbow(max(12)) # must be the same length of number pf nodes (vertices)
V(networkdf)$color <- c(colors)
# E(networkdf)$width <- E(network)$weight

plot(networkdf, 
     edge.width = E(networkdf)$weight)
     legend("topright", 
     legend=c(0,5,7,9,14,17,24,30,32,33,34),
     col = colors,
     pch = 12,
     title = "Core")

希望对你有帮助

© www.soinside.com 2019 - 2024. All rights reserved.