我正在尝试在igraph中制作一个网络图,通过将某些重要的边缘着色与其他边缘区分开来。对于大型图形,它们经常被淹没在其他边缘之下。例如:
library(igraph)
test <- barabasi.game(200,m=2)
E(test)$color <- "gray"
E(test)[1]$color <- "red"
sort(order(E(test)$color)[E(test)],decreasing=TRUE)
plot(test,
vertex.label=NA,
vertex.shape="none",
vertex.size=0,
edge.arrow.mode=0,
edge.width=2)
请为我提供一个情节,其中单个红边缘位于底部。 如果我选择着色编号更高的边缘(而不是 #1),它更有可能不被埋没。
因此,在我看来,一种选择是以某种方式重新排序边缘。 我尝试过
E(test) <- E(test)[order(E(test)$color)]
但是这给我带来了一个“无效的索引”错误。您有什么其他建议吗?
set.seed()
确保我的布局是可重现的,并在第一次绘图后使用E(test)[E(test)$color=="gray"]$color <- NA
确保灰色边缘被隐藏,并在第二次调用plot()
时使用add=TRUE
。 - cjolleyplot()
函数中的layout=...
参数。 - Tamás