首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不连通图中标注连通组件?

如何在不连通图中标注连通组件?
EN

Stack Overflow用户
提问于 2018-11-21 22:51:40
回答 1查看 174关注 0票数 1

我有一个由三个连通分量组成的不连通图。此图由igraph中的以下命令生成:

代码语言:javascript
复制
library(igraph)
x1 <- c(1:7, 2, 8:14, 10, 15:21, 18)
x2 <- c(rep(0, 7), 1, rep(0, 7), 1, rep(0, 7), 1)
m <- cbind(x1, x2)
g <- graph.formula(1-2, 2-3, 3-4, 4-5, 5-6, 6-7, 2-8,
                   9-10, 10-11, 11-12, 12-13, 13-14, 14-15, 11-16,
                   17-18, 18-19, 19-20, 20-21, 21-22, 22-23, 20-24)
plot(g, layout = m, rescale = F, xlim = c(0.5, 21.5), vertex.size = 20,
     vertex.label = NA, edge.color = "black", vertex.color = "black")

产生的断续图如下所示:

我想用一个字母来标记每一个断开的部件,例如"A“、"B”和"C“。或者,我想为in中的每个连接组件制作一些字幕?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-21 23:45:30

使用components获取集群id。若要在每个id内水平地对标签进行居中,请使用tapply计算'm‘中x值的中点。对于垂直位置,使用min的y值和适当的偏移量。使用text添加标签。

代码语言:javascript
复制
m <- cbind(m, id = components(g)$membership)
xs <- tapply(m[ , "x1"], m[ , "id"], function(x) mean(range(x)))
ys <- tapply(m[ , "x2"], m[ , "id"], min)
plot(g, layout = m, rescale = F, xlim = c(0.5, 21.5), vertex.size = 20,
     vertex.label = NA, edge.color = "black", vertex.color = "black")
text(xs, ys - 0.6, LETTERS[1:3])

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53421549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档