我有一个大型数据集,其中个体随着时间的推移值增加并且状态为1或0.我可以为每个个体绘制一条线随着时间的推移而增加,根据它们是0还是1来着色。
我无法弄清楚如何将所有0都绘制在所有1的顶部,以便零没有任何1超过它们的顶部。
我已将它们分配到组,然后设置组顺序并尝试按组绘图,但这不起作用。
为了演示这个问题,我可以使用ChickWeight数据集。如果我使用下面的脚本进行绘图,那么灰色线条位于蓝色的顶部,我希望能够使用蓝色为小鸡1绘制它们,但蓝色线条位于灰色的顶部。
ggplot(ChickWeight, aes(x=Time, y=weight, colour=Chick))+
geom_point(aes(colour=Diet,shape=Diet),size=1.5)+
geom_line(aes(colour=Diet,group=Chick))+
scale_colour_manual(values=c('blue','grey','grey','grey'))
答案 0 :(得分:0)
最简单的方法是使用双重geom来控制绘图顺序:
ggplot(mapping = aes(x=Time, y=weight, colour=Diet, group=Chick, shape=Diet))+
geom_line(data = ChickWeight[ChickWeight$Diet != '1', ])+
geom_line(data = ChickWeight[ChickWeight$Diet == '1', ])+
geom_point(size=1.5, data = ChickWeight[ChickWeight$Diet != '1', ])+
geom_point(size=1.5, data = ChickWeight[ChickWeight$Diet == '1', ])+
scale_colour_manual(values=c('blue','grey','grey','grey'))