使用下面的代码,我可以在 igraph 提供的“空手道俱乐部”示例中生成社区图(参见第一张图片)。
library(igraph)
karate <- make_graph("Zachary")
wc <- cluster_walktrap(karate)
plot(wc, karate)
Run Code Online (Sandbox Code Playgroud)
如何在每个社区的“附近”添加文本标签?对于此示例,假设我想将 5 个不同的社区称为“社区 X”(X = 1:5)。理想情况下,代码会将文本标签放置在彩色社区多边形的“外部”以创建清晰的图形(通过将标签放置在离每个多边形图形中心最远的 xy 坐标上)。(见第二张图)
我看过这篇文章,但唯一的建议是手动添加标签。
关于如何使用代码添加文本标签的任何想法?是否可以“获取”社区多边形的 xy 坐标并以这种方式添加文本标签?(不确定这应该是一个新问题还是对链接帖子的答案的评论 - 让我知道,因为我是新手)。
非常感谢!


编辑:根据下面的评论,我确定了以下似乎是为每个组/社区绘制多边形的代码:
params <- i.parse.plot.params(graph, list(...))
#...
layout <- params("plot", "layout")
#....
for (g in seq_along(mark.groups)) {
v <- V(graph)[mark.groups[[g]]]
#...
igraph.polygon(layout[v, , drop = FALSE], vertex.size = vs,
expand.by = mark.expand[g]/200, shape = mark.shape[g],
col = mark.col[g], border = mark.border[g])
Run Code Online (Sandbox Code Playgroud)
}
但是,我找不到有关 igraph.polygon 函数的任何信息。我也不知道如何处理 params 和 'layout[v, ,]'。此外,即使我能弄清楚这一切,我将如何更改 igraph 的绘图功能并添加文本标签?
| 归档时间: |
|
| 查看次数: |
1055 次 |
| 最近记录: |