r - 如何根据集群网络中的特定值对顶点着色?
问题描述
获取以下网络的代码如下所示
MyEdges <- read.table(header=TRUE,sep=",",text="
from,to
A,B
C,A
C,B
D,A
E,F
F,G
G,A
G,E
")
MyNodes <- read.table(header=TRUE,sep=",",text="
name,group
A,1
B,1
C,2
D,2
E,3
F,3
G,4
")
MyNetwork <- graph.data.frame(d=MyEdges,vertices=MyNodes,directed=TRUE)
# Make a palette of colors
library(RColorBrewer)
coul <- brewer.pal(9, "Set1")
# Create a vector of color
my_color <- coul[as.numeric(as.factor(V(MyNetwork)$group))]
set.seed(1234)
plot(MyNetwork,
layout = layout.graphopt,
vertex.color = my_color,
)
# Add a legend
legend("bottomleft",
legend=levels(as.factor(V(MyNetwork)$group)),
col = coul ,
bty = "n",
pch= 20 ,
pt.cex = 3,
cex = 1.5,
text.col=coul ,
horiz = FALSE,
inset = c(0.1, 0.1)
)
效果很好。
但是,一旦我进行了集群网络分析并且我想显示组,节点/顶点的颜色就没有正确显示。
# Plotting data
MyNetwork_cluster <- cluster_optimal(MyNetwork) #* Loading the data
set.seed(1234)
plot(MyNetwork_cluster, #* clustered network data
MyNetwork,
layout = layout.graphopt, # better layout options
vertex.color = my_color, # ?????????????????????????????
)
# Add a legend
legend("bottomleft",
legend=levels(as.factor(V(MyNetwork)$group)),
col = coul ,
bty = "n",
pch= 20 ,
pt.cex = 3,
cex = 1.5,
text.col=coul ,
horiz = FALSE,
inset = c(0.1, 0.1)
)
我的问题是“如何保持集群网络的顶点颜色模型?”
解决方案
然后调用顶点颜色的选项col
:
# Plotting data
MyNetwork_cluster <- cluster_optimal(MyNetwork) #* Loading the data
set.seed(1234)
plot(MyNetwork_cluster, #* clustered network data
MyNetwork,
layout = layout.graphopt, # better layout options
col = my_color, # !!!!!!!!!!!!!!!!
)
# Add a legend
legend("bottomleft",
legend=levels(as.factor(V(MyNetwork)$group)),
col = coul ,
bty = "n",
pch= 20 ,
pt.cex = 3,
cex = 1.5,
text.col=coul ,
horiz = FALSE,
inset = c(0.1, 0.1)
)
推荐阅读
- git - use docker-compose to generate an image --only--
- python - Regarding dictionary value manipulation in python
- python - 适合模拟python
- d3.js - D3.csv 未返回获取 Promise Pending 的数据
- cmake - 从已编译的库中创建包配置文件?
- react-native-android - 当我使用 react-native-vector-icons 时图标不出现
- java - 为什么 Hibernate @OneToOne 执行多个选择查询而不是一个?
- email - 我无法配置电子邮件 Jenkins 扩展
- c# - 如何在没有 Excel 或 3rd 方工具的情况下将 xlsx 文件读入 .net?
- apache-pulsar - 用于检查主题分区的命令行工具-> Pulsar 中的 bookie 分类帐映射?