如何使用igraph选择两种模式的布局并避免重叠?

时间:2016-05-17 14:07:01

标签: r igraph sna

我需要绘制的数据集非常大,是双模式。一个是关于学生,另一个是关于他们共享的项目。

我使用igraph并尝试了几种布局。没有一个是令人满意的。使用kk的布局相对信息丰富。这是它的样子:

layout with kk

绿色和大型项目是项目,而小型和粉红色项目是学生。

我想标记它们,以便获得更多信息。但情节如此激烈,并且有很多重叠。其他布局会更糟。

有人能帮忙吗?喜欢如何改变重叠?如何添加标签,不需要全部,但至少对某些集线器?

以下是我的代码:

net <- graph_from_incidence_matrix(links)
V(net)$color[1:2621] <- rgb(1,0,0,.5)
V(net)$color[2622:4326] <- rgb(0,1,0,.5)
V(net)$label <- V(net)$name
V(net)$label.color <- rgb(0,0,.2,.5)
V(net)$label[1:2621] <- NA
V(net)$color[1:2621] <-  rgb(1,0,0,.1)
V(net)$size[1:2621] <- 3
V(net)$size[2621:4326] <- 5
E(net)$curved <- FALSE
l1 <- layout_with_kk(net)
plot(net, layout=l1,vertex.label=NA,edge.width =E(net)$weight)

1 个答案:

答案 0 :(得分:0)

如果您知道要显示哪些标签,可以为vertex.label指定一个向量,指定它们。

同样删除是通过vertex.frame.color更改节点边框的颜色可能很有用。

例如:

 r <- make_ring(10)
 showlabels <- seq(1,10)
 showlabels[showlabels %% 2 != 0] <- NA 
 plot(r, vertex.label = showlabels, vertex.frame.color = NA)