在 R 中使用 igraph 仅显示网络图上的特定标签

Show only specific labels on network graph using igraph in R

我正在尝试绘制仅显示特定顶点标签的图形。在这种情况下,我只想显示具有一定边数的顶点的标签。

我正在将顶点和边读入图形对象,如下所示:

nodes <- read.csv("path_to_file.csv")
edges <- read.csv("path_to_file.csv")
g <- graph_from_data_frame(edges,directed=TRUE,vertices=nodes)

我使用以下命令绘制图形并根据连接数改变边的宽度($rels 属性是两个顶点之间的连接数):

plot.igraph(g,vertex.size=3,vertex.label.cex=0.5,layout=layout.fruchterman.reingold(g,niter=10000),edge.arrow.size=0.15,edge.width=E(g)$rels/100)

有没有办法说,例如,只有边数大于 100 的顶点才应该显示其标签?如果我试图在我的 csv 文件中留下顶点标签,igraph 认为它们是重复的顶点。


数据示例

nodes.csv
name | org_id
U.S. Department of Energy | 70063
Environmental Protection Agency | 100000

edges.csv
from | to | rels
U.S. Department of Energy | Hanford SSAB | 477
Natural Resources Defense Council | Environmental Protection Agency | 322

尝试

library(igraph)
set.seed(1)
g <- sample_pa(20)
V(g)$label <- letters[1:20]
plot(g, vertex.label = ifelse(degree(g) > 2, V(g)$label, NA))

仅显示度数大于 2 的顶点的标签: