我试图绘制网络g
:
> g
Network attributes:
vertices = 866
directed = TRUE
hyper = FALSE
loops = FALSE
multiple = FALSE
bipartite = FALSE
total edges= 5310
missing edges= 0
non-missing edges= 5310
Vertex attribute names:
color degree membership vertex.names
Edge attribute names not shown
g
node
“会员”发生时使用以下频率:
> table(g %v% "membership")
1 2 3 4 5
19 44 11 196 596
当我使用优良ggnet2
包和下面的函数,没有说明返回的曲线图,虽然文档建议为节点大小,颜色等是自动生成的曲线图 (见节点图例部分):
ggnet2(g_new, color = "membership", size = "degree") +
guides(size = F)
我的猜测是,你传递一个数值顶点属性ggnet2
,然后将其理解为色彩值的向量。
简短的回答:
把你的membership
属性为character
字符串,你将被罚款。
长一点的回答:
比较在下面的例子中的两个图表,以获得差异:
library(GGally)
library(ggplot2)
library(network)
library(sna)
g <- network(rgraph(10))
g %v% "membership" <- sample(1:5, 10, replace = TRUE)
g %v% "membership_string" <- as.character(g %v% "membership")
g %v% "degree" <- degree(g)
g
table(g %v% "membership")
## Your graph
ggnet2(g, color = "membership", size = "degree") +
guides(size = FALSE)
## Your graph, with the membership variable as a string
ggnet2(g, color = "membership_string", size = "degree") +
guides(size = FALSE)
如果你想区分颜色,而不是在你的情节灰度等级,你可能想是这样的:
ggnet2(g, color = "membership_string", size = "degree", color.palette = "Set1") +
guides(size = FALSE)
另外,我可能会建议你给一个尝试到ggnetwork
包,里面有额外的功能?