6

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

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

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
4

1 回答 1

10

尝试

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 的顶点的标签:

在此处输入图像描述

于 2015-08-28T07:02:11.643 回答