2016-05-25 2 views
2

Я пытаюсь сделать сюжет с несколькими строками, и я хочу контролировать порядок, в котором рисуются линии, так что определенные строки оказываются поверх других. Например, в приведенном ниже коде 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 эстетическим официально осуждается Он никогда не работал, и был плохо документированы..»)

+0

вы можете проверить порядок grobs, которые создаются с 'ggplot', он определенно детерминирован. Если это не соответствует вашим потребностям, его не должно быть сложно модифицировать в соответствии с вашим вкусом. –

+0

Сказав это, и глядя на структуру данных, это не просто :) –

ответ

Смежные вопросы