首页 > 解决方案 > r 中的 igraph 包:如何标记有向无环图的边

问题描述

我对r编程很陌生,所以我的知识有限。我正在使用该igraph软件包并tkplot制作和呈现有向无环图。我设法制作了一个图表,并试图弄清楚如何为每条边添加标签。我的目标是在每个顶点/顶点之间的线上有一个小注释来解释它们的关系。

我尝试插入文本,如下所示:

text(-1, 0,"[1, 2, 3]")
text(0, 1,"[3, 5, 6]")

但是,此文本不会转移到 out of rwithtkplot并且很难与顶点之间的线对齐。

这段代码给了我想要的确切图形减去顶点之间的文本。


g <- graph.formula("ATB" -+ "Microbiome",
                   "Microbiome" -+ "Inflammation A" -+ "IO Response",
                   "Microbiome" -+ "Inflammation B" -+ "IO Response",
                   "Microbiome" -+ "IO Response",
                   "ATB" -+ "IO Response",
                   "Corticosteroids" -+ "IO Response",
                   "Corticosteroids" -+ "Microbiome",
                   "PPI" -+ "IO Response",
                   "PPI" -+ "Microbiome",
                   "H2B" -+ "IO Response",
                   "H2B" -+ "Microbiome",
                   "NSAIDs" -+ "Microbiome",
                   "NSAIDs" -+ "Inflammation B",
                   "NSAIDs" -+ "IO Response",
                   "Corticosteroids" -+ "Inflammation A",
                      simplify = TRUE)

plot.igraph(g, size = 90)

tkplot(g)

标签: rigraphdirected-acyclic-graphstkplot

解决方案


您可以通过为每条边分配属性“标签”来为边添加标签。你没有说你想要什么作为标签,所以我随意为每个边缘分配了一个字母代码。此外,您的绘图语句包含一个“大小”参数。这会导致错误,所以我将其关闭。您的意思是“vertex.size”吗?

E(g)$label = LETTERS[1:ecount(g)]
plot(g)

带标签边的图


推荐阅读