我想使用构面绘制图形,其中面板之间的边缘不同。面板按字母顺序自动排序(如 中的惯例ggplot
)。一个简单的例子:
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)
这很好,节点位置被保留,但边缘因g
.
但是,我想选择构面出现的顺序。所以在这种情况下,首先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)
如何为刻面提供自定义排序?