我想使用構面繪製圖形,其中面板之間的邊緣會有所不同。面板按字母順序自動排序(如ggplot
中的慣例)。一個簡單的例子:在ggraph中控制構面順序
library(igraph)
library(ggraph)
g <- make_empty_graph() +
vertices(1:2) +
edges(1:2, 2:1, g = c('b', 'a'))
ggraph(g, 'kk') +
geom_edge_link(arrow = grid::arrow()) +
geom_node_label(aes(label = name)) +
facet_edges(~g)
這是很大的,該節點位置presevered,但邊緣不同取決於g
。
但是,我想選擇facet出現的順序。所以在這種情況下,首先b
然後a
,就像我在創建上面的圖形時訂購它們一樣。
在ggplot
可以改變因子g
的順序。然而,創建佈局不顯示g
:
create_layout(g, 'kk')
x y name ggraph.orig_index circular ggraph.index 1 -0.9021575 -1.410825e+00 1 1 FALSE 1 2 -1.0000000 1.224606e-16 2 2 FALSE 2
改變邊緣手動屬性到一個因素,確實改變了順序,但標籤被強制爲數字:
g2 <- make_empty_graph() +
vertices(1:2) +
edges(1:2, 2:1, g = factor(c('b', 'a'), levels = c('b', 'a')))
ggraph(g2, 'kk') +
geom_edge_link(arrow = grid::arrow()) +
geom_node_label(aes(label = name)) +
facet_edges(~g)
我該如何給自定義訂購的方面?
謝謝托馬斯!我根本沒有和igraph結婚,但我打算在CRAN發行版中使用它,所以我認爲tidygraph現在有點太早了。我會密切關注未來的發展,並會嘗試igraph代碼! – Axeman
Tidygraph將在下一次dplyr發佈之後的夏天在CRAN上發佈,因此根據您的時間表,這可能不是問題 – ThomasP85