样本数据框:
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)
现在,假设我想将构面顺序更改为(从行的左上角开始,到行的右下角)“ L”,“ B”,“ R”,“ BC”。这里通常的建议上,就是为了做这个。但是,如果我重新排序factor的水平,Case
曲线的颜色也会改变。是否可以在不更改曲线颜色顺序的情况下重新排列构面?我知道这听起来像个奇怪的问题。问题在于我的报告是一个正在进行的工作,并且在我已经向同事和管理层展示的旧版本的报告中,或多或少有多个这样的图(无facet_wrap
):
ggplot(df,aes(x=x,y=y,color=Case)) + geom_line()
换句话说,到目前为止,人们已经习惯于将“ B”与红色相关联。如果我重新排序,“ L”将为红色,“ B”将为绿色,依此类推。我已经可以听到投诉了……从这个办法中可以解决吗?
只需按照所需顺序将数据复制到新列中即可。将新列用作构面,将旧列用作颜色。
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句