【发布时间】:2020-03-09 23:20:36
【问题描述】:
我有一个看起来像这样的数据框:
id_1 id_2 id_3_all
1 1aju 1uts 50:1aju_ARG
2 1am0 6e8s 22:1am0_AMP
3 1byj 1pbr 9:1byj_GE1
4 1byj 2esi 9:1byj_GE1
5 1byj 2et8 9:1byj_GE1
6 1byj 2f4u 9:1byj_GE1
7 1byj 2o3x 9:1byj_GE1
8 1byj 5bxk 9:1byj_GE1
9 1byj 5zej 9:1byj_GE1
10 1byj 1f27 9:1byj_GE1
11 1byj 1o9m 9:1byj_GE1
12 1byj 2f4s 9:1byj_GE1
13 1byj 2f4t 9:1byj_GE1
14 1byj 4f8v 9:1byj_GE1
15 1byj 5z1i 9:1byj_GE1
16 1eht 1o15 47:1eht_TEP
17 1f1t 1q8n 45:1f1t_ROS
18 1f27 2f4t 9:1byj_GE1
19 1fmn 6c63 13:1fmn_FMN
20 1fmn 6c64 13:1fmn_FMN
其中 id_1 和 id_2 是网络连接/顶点,第 3 列是组标签。我想制作一个显示组标签的网络图。 将 df 转换为 igraph 对象并绘制后:
g4 <- graph_from_data_frame(RNA_families, directed = F)
E(g4)$group <- as.character(RNA_families$id_3_all)
plot(g4,
edge.label = E(g4)$group,
edge.label.cex = 0.7,
edge.label.dist = 1,
vertex.label = NA,
alpha = 0.1,
vertex.size = 1
)
我得到一个类似这样的情节:
如您所见,标签非常混乱,情节非常难以阅读。我想做的是只显示一个标签公关组。有什么办法可行吗?
【问题讨论】:
-
作为一种变通方法,您能否在数据框中将除第一次出现的每个组标签都设置为“”(即空白)吗?
-
发布后我想到了同样的解决方案,@JordanHackett。但我并不完全是如何写这个的,因为我对 R 很陌生
-
如果您的数据框被称为“df”,您应该能够执行类似 df$id_3_all[duplicated(df$id_3_all)] 的操作
-
这成功了!谢谢:D
-
@JordanHackett 你能把这个写下来作为答案吗?
标签: r networking igraph