我有一个带有许多边缘属性的igraph网络对象。一个边缘属性根据数量对网络类型进行分类(例如,1 =友谊,2 =建议)。我想分别绘制每种类型的网络。但是,我不想创建单独的子图。我想使用一个igraph网络对象为所有网络类型维护相同的布局。在iGraph文档中,如何做到这一点对我来说并不明显。有人可以帮助我吗?
答案 0 :(得分:1)
如果您绘制图形两次并在每个绘图之前设置相同的set.seed()
,则布局应该相同。然后,您可以根据要显示的边缘使边缘透明/可见。
答案 1 :(得分:0)
我认为在igraph
中没有直接的方法可以做到这一点。这是有道理的,因为那些是属性;即,另外一些东西,而不是指定边缘类型的标准方法。因此,我认为一个好的选择就是在绘制图形时简单地改变边缘集,如下例所示:
library(igraph)
g <- make_ring(10) %>%
set_edge_attr("weight", value = 1:10) %>%
set_edge_attr("color", value = "red")
plot(g %>% delete_edges(which(edge_attr(g)$weight > 5)))
plot(g %>% delete_edges(which(edge_attr(g)$weight <= 5)))