【问题标题】:Display one label pr group in an igraph network在 igraph 网络中显示一个标签 pr 组
【发布时间】: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


【解决方案1】:

作为一种解决方法,您可以在数据框中将除第一次出现的组标签之外的所有组标签设置为“”(即空白)。这可以像这样完成: 如果您的数据框名为df,您可以使用df$id_3_all[duplicated(df$id_3_all)] &lt;- "" 将所有重复名称设置为空白。

【讨论】:

    猜你喜欢
    • 2020-04-14
    • 2021-07-01
    • 2013-03-17
    • 2022-06-13
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多