【问题标题】:R igraph: label vertex by conditionR igraph:按条件标记顶点
【发布时间】:2017-12-18 09:44:15
【问题描述】:

我有一个带有一组顶点的图 g 和一个带有一些“特殊”顶点名称的列表。 我希望图表仅针对这些特殊顶点显示带有顶点名称的标签。

我尝试过这样的事情:

plot(g, vertex.size = 4, vertex.label = ifelse(V(g) %in% usernames, V(g)$label, ""), asp = F)

但显然我遗漏了一些东西,因为谓词永远不会输入 TRUE。 此外,似乎 V(g)$label 会导致以下错误:

ans[test & ok]

您的帮助将不胜感激! :)

【问题讨论】:

  • 欢迎来到 SO。最好提供一个最小的可重现示例,准备复制粘贴运行,而不是松散的代码 sn-ps 和不可重现的错误消息。

标签: r label igraph


【解决方案1】:

V(g) 变成V(g)$label

set.seed(1)
library(igraph)
g <- ba.game(26)
V(g)$label <- letters[1:26]
usernames <- sample(letters, 5)
plot(g, vertex.label = ifelse(V(g)$label %in% usernames, V(g)$label, NA))

set.seed(1)
library(igraph)
g <- ba.game(26)
usernames <- sample(vcount(g), 5)
plot(g, vertex.label = ifelse(V(g) %in% usernames, V(g), NA))

?

【讨论】:

  • 嘿卢克,我应用了你的解决方案,效果很好!我只是有一个问题,当你有 2 个 dfs 并且你有“感兴趣的标签”并且你想在你的图表中绘制它时怎么办?我尝试使用plot(subgraphGRN, vertex.label1 = ifelse(c(V(subgraphGRN)$name %in% nodes_query, V(subgraphGRN)$name %in% res.subg$Names), V(subgraphGRN)$symbol,NA), layout = layout.sphere(subgraphGRN),但它并没有真正起作用......有什么建议吗?