2014-02-06 55 views
0

我正在用ggplot繪製三個樣本,但它沒有爲樣本添加圖例。這不是吐出任何錯誤信息,所以我不知道我要去哪裏錯了。我真的會提供一些指導。ggplot不添加圖例。我錯過了什麼?非常新的R

我試圖爲圖例的每個樣本手動聲明顏色,但在圖上仍然沒有圖例。

df<-data.frame(samples$V1, samples$V2, samples$V3, samples$V4, samples$V5, samples$V6, samples$V7) 


CG_methplot <- ggplot(df, aes(x=samples$V1,))+ 
    scale_x_continuous(breaks=number_ticks(10))+ 
    xlab("bins")+ 
    ylab("mean CG methylation")+ 
    geom_point(aes(y=samples$V2), size=3, colour='#009933')+ 
    geom_point(aes(y=samples$V3), size=3, colour='#FF0000')+ 
    geom_point(aes(y=samples$V4), size=3, colour='#0033FF')+ 
    scale_color_manual(values=c("samples1"="009933", "sample2"="FF0000", "sample3" ="0033FF")) 
CG_methplot 

根據要求提供樣品數據。

頭(DF)

samples.V1 samples.V2 samples.V3 samples.V4 samples.V5 samples.V6 samples.V7 
1   1 0.033636 0.027857 0.028830 0.029836 0.024457 0.024930 
2   2 0.032094 0.029620 0.028005 0.028294 0.026220 0.024105 
3   3 0.032011 0.027212 0.029728 0.028211 0.023812 0.025828 
4   4 0.030857 0.029833 0.028907 0.027057 0.026433 0.025007 
5   5 0.028480 0.028080 0.028553 0.024680 0.024680 0.024653 
6   6 0.029445 0.027099 0.029346 0.025645 0.023699 0.025446 
+0

您可以通過添加dput的'輸出提供數據的樣本(頭(DF))'到題?簡短的回答是,你想使用'reshape2'中的'melt',然後只需一次調用'geom_point'即可。 –

+0

當然可以!感謝您的幫助:) – user1995839

回答

4
library(reshape2) 
melted <- melt(df, id.vars = "V1") 

p <- ggplot(melted, aes(x = V1, y = value, colour = variable)) 
p + geom_point() 

enter image description here

+0

現在工作!非常感謝你的幫助。 – user1995839

+0

正如一個側面說明,如果我想只繪製前三個或最後三個樣本?我會用什麼樣的語法?像這樣? pggplot(熔化,aes(x = samples.V1,y =變量[1-3])) – user1995839

+0

@ user1995839給予'ggplot'的數據,即'ggplot(熔化[1:3,], aes(x = V1,y = value,color = variable))' –