Я пытаюсь сделать сюжет с несколькими строками, и я хочу контролировать порядок, в котором рисуются линии, так что определенные строки оказываются поверх других. Например, в приведенном ниже коде B отображается сверху A. Я могу отменить это, переназначив уровни факторов group
, но это также изменит другие аспекты графика, такие как цвета каждой строки и порядок группы в легенде. Есть ли способ напрямую контролировать порядок, в котором линии строятся независимо от чего-либо еще, возможно, через эстетику?Как я могу управлять порядком z нескольких строк в ggplot2?
library(ggplot2)
df <- data.frame(
group=rep(c("A", "B"), each=2),
x=c(0,1,0,1), y=c(0,1,1,0))
ggplot(df) +
aes(x=x,y=y,color=group) +
geom_line(size=3)
Существует ggplot2 называется aes_group_order
страница руководства, но по версии 2.1.0 это не имеет никакого отношения к эстетике заказа. Похоже, что порядок упоминался в man-странице для an old version, но это поведение на самом деле не задокументировано, только демонстрируется некоторыми незначительно информативными примерами.
(Edit: Согласно ggplot2 release notes, «О order
эстетическим официально осуждается Он никогда не работал, и был плохо документированы..»)
вы можете проверить порядок grobs, которые создаются с 'ggplot', он определенно детерминирован. Если это не соответствует вашим потребностям, его не должно быть сложно модифицировать в соответствии с вашим вкусом. –
Сказав это, и глядя на структуру данных, это не просто :) –