首页 文章

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

提问于
浏览
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

1 回答

  • 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

相关问题