我有这种情况,我正在绘制一系列行,如下所示:
library(foreach)
library(ggplot2)
df.test <- foreach(ix = seq(0,1,by=0.01),.combine=rbind) %do% {
theta = seq(-pi,pi,by=pi/100)
data.frame(IX=ix,theta=theta,value=ix*sin(theta))
}
ggplot(df.test,aes(x=theta,y=value,color=IX,group=IX,order=-IX)) + geom_path() +
theme_bw() + labs(x="Theta",y="Sin(Theta)",color="Index",title="Example Plot") +
theme(legend.position=c(0,1),legend.justification=c(0,1))
产生如下图:
如果仔细观察原点,高指数值(浅蓝色)的值会堆叠在低指数值(深蓝色)的行顶部。
如何将其反转,使深蓝色线条(低指数)堆叠在浅蓝色线条(高指数)之上。
以上类似于我的实际问题,我正在绘制各种温度的科学数据。低温值比高温值更有意义,所以我不希望低温线被高温线屏蔽,实际上我的偏好相反。
答案 0 :(得分:2)
我认为您需要做的就是将颜色审美更改为rev(IX)
,这将颠倒订购,您不需要group
或order
:
ggplot(df.test, aes(x=theta, y=value, color=rev(IX))) + ...
答案 1 :(得分:2)