我有一个网络数据,想绘制核心。有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")
我认为您可能需要在
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")
希望对你有帮助