2017-03-04 76 views
0

我有一個大的數據集,其中個人值隨時間增加,並具有1或0狀態我可以繪製的線爲每個個體隨時間增加,着色取決於它們是否是線一個0或1.ggplot2-多線圖序列

我無法弄清楚,然後如何將所有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

這可能是最容易做的雙重geoms控制繪製順序:

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')) 

enter image description here

+1

我認爲,如果你改變了GEOM以1您獲得更好的結果)行,然後點灰色,然後是2)線然後指向藍色 – dww

+0

@dww,啊是的,這是真的。原則應該清楚。 – Axeman