首页 > 解决方案 > 将文本添加到 R 中的 igraph

问题描述

感谢@G.Grothendieck 的回答,我有以下代码

library(igraph)

DF <- data.frame(in. = 1:6, out. = c(3, 3, 5, 5, 7, 7)) 

g <- graph_from_edgelist(as.matrix(DF[2:1]))
lay <- layout_as_tree(g)
plot(as.undirected(g), layout = lay %*% diag(c(1, -1)))

在此处输入图像描述

现在,我需要基于此在该图中添加一些文本:

DF <- data.frame(in. = 1:6, out. = c(3, 3, 5, 5, 7, 7), 
date = c('2019-11-01', '2019-11-01', '2020-01-01',  '2020-01-01', '2020-12-31', '2020-12-31') ) 

我希望 2019-11-01 显示在顶层的一侧(或者更好的是,在每个级别的两个节点之间),然后 2020-01-01 显示在下一层,'2020-12- 31`在下一个,底层什么都没有。

这可能吗 ?

标签: rigraph

解决方案


我希望我理解正确。您可以只添加带有坐标的文本。例如,坐标 0,0 将文本放在中间。您可以将任何文本定位到任何位置。

g <- graph_from_edgelist(as.matrix(DF[2:1]))
lay <- layout_as_tree(g)
plot(as.undirected(g), layout = lay %*% diag(c(1, -1)))
text(lay[1,1], (lay[1,2]+lay[3,2]/2),"2019-11-01")

推荐阅读