问题描述
我有一个生殖对的边缘列表,如下所示:
StringBuilder buf = new StringBuider();
for (String symbol : split) {
if (symbol.equals(" ")) {
buf.append(' ');
} else {
String str = morseCoder.get(split[i]);
buf.append(str == null ? "�" : str);
}
}
String message = buf.toString();
使用Igraph,我从数据中生成了一个图,以对整个df进行绘制和运行一些分析:
male_ID=c(1,2,3,4,5),female_ID=c(6,7,8,9,10),a=cbind(male_ID,female_ID)
我的问题是,我现在是否可以基于边缘列表中列出的列为个人的性别添加一个属性(到颜色顶点)?
解决方法
您可以为图形对象分配组标签。
为创建组向量“性”,您的数据框建议您的男性和女性人数相同。 graph_from_data_frame()
的mal_ID和female_ID列彼此堆叠,您可以使用igraph::V(g)
进行检查。因此,您可以从该信息中得出组向量:
male_ID=c(1,2,3,4,5); female_ID=c(6,7,8,9,10); a=cbind(male_ID,female_ID)
#create graph object from dataframe
g <- igraph::graph_from_data_frame(a)
#investigate structure g
igraph::V(g)
#[1] 1 2 3 4 5 6 7 8 9 10
# create sex group vector
sex <- c(replicate(length(male_ID),"Male"),replicate(length(female_ID),"Female"))
#Check group values
print(igraph::V(g)$group)
# NULL
#assign groups
igraph::V(g)$group <- sex
#Check group values again
print(igraph::V(g)$group)
#[1] "Male" "Male" "Male" "Male" "Male" "Female" "Female" "Female" "Female" "Female"
# I use visnetwork to visualise
vis_g <- visNetwork::toVisNetworkData(g,idToLabel = TRUE)
visNetwork::visNetwork(
nodes = vis_g$nodes,edges = vis_g$edges
)