我試圖在igraph中製作一個網絡圖,通過對它們進行着色來突出顯示某些重要邊緣。對於大圖,他們經常被埋在其他人之下。例如:如何重新排列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」。 – cjolley
您也可以顯式調用佈局函數並將其結果存儲在變量中 - 然後您可以稍後在'plot()'的'layout = ...'參數中傳遞此變量。 –
您也可以生成一次佈局,然後將其存儲到圖形中。如果您設置了g $佈局屬性,該圖將自動使用存儲在那裏的佈局。在這種情況下,您可以將佈局存儲到圖形中,然後將新圖形佈局設置爲與舊圖形佈局相同。 – wmsmith