是否可以仅重新排序facet_wrap的方面,而无需重新排序潜在的因子水平?

时间:2016-08-08 17:02:19

标签: r ggplot2 facet-wrap

示例数据框:

df <- data.frame(x=rep(1:10,4),y=rnorm(40),Case=rep(c("B","L","BC","R"),each=10))

我可以用自己的方面绘制每个时间序列:

ggplot(df,aes(x=x,y=y,color=Case)) + geom_line()+facet_wrap(~Case,nr=2,nc=2)

enter image description here 现在,假设我想将facet顺序更改为(从左上角开始,沿着行向右下方)“L”,“B”,“R”,“BC”。关于SO的通常建议是this。但是,如果我重新排序因子Case的级别,曲线的颜色也会改变。是否可以重新排序刻面,而不改变曲线颜色的顺序?我知道这听起来像一个奇怪的问题。问题是我的报告是一项正在进行中的工作,而且是在报告的旧版本中,我已经向同事展示了这个报告。管理方面,有多个或多或少像这样的图(没有facet_wrap):

ggplot(df,aes(x=x,y=y,color=Case)) + geom_line()

enter image description here

换句话说,现在人们习惯将“B”与红色联系起来。如果我重新排序,“L”将为红色,“B”为绿色,依此类推。我已经可以听到抱怨了......任何出路都没有?

1 个答案:

答案 0 :(得分:4)

只需将数据复制到您想要的订单的新列中。使用新列进行分面,使用旧列作为颜色。

df$facet = factor(df$Case, levels = c("L", "B", "R", "BC"))

ggplot(df, aes(x = x, y = y, color = Case)) + 
    geom_line() + 
    facet_wrap(~facet, nr = 2)