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

时间:2015-08-28 03:31:23

标签: r igraph network-analysis

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

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

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)

有没有办法说,例如,只有顶点&gt; 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

1 个答案:

答案 0 :(得分:7)

尝试

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

enter image description here