2013-06-03 185 views
0

多個變量我有它看起來像這 -繪製在ggplot

pos gtt1 gtt2 ftp1 ftp2 
8 100 123 49 101 
9 85 93 99 110 
10 111 102 53 113 
11 88 110 59 125 
12 120 118 61 133 
13 90 136 64 145 
14 130 140 104 158 
15 78 147 74 167 
16 123 161 81 173 
17 160 173 88 180 
18 117 180 94 191 
19 89 188 104 199 
20 175 197 107 213 

我想和pos(位置)的線圖上用ggplot x軸的數據表。我試圖用另一種顏色顯示gtt1gtt2行,而另一種顏色顯示ftp1ftp2,因爲它們是樣本的單獨組(gtt和ftp)。我已經成功創建了圖形,但所有四行都有不同的顏色。我想只保留傳說中的gtt和ftp(不是全部四個)。獎金,我怎樣才能讓這些線條變得光滑。

這裏是我做過什麼至今:

library(reshape2);library(ggplot2) 
data <- read.table("myfile.txt",header=TRUE,sep="\t") 
data.melt <- melt(data,id="pos") 
ggplot(data.melt,aes(x=pos, y=value,colour=variable))+geom_line() 

在此先感謝

+0

添加到您的情節:'+ scale_colour_manual(值= c(gtt1 =「blue」,gtt2 =「blue」,ftp1 =「red」,ftp2 =「red」)) – bdemarest

回答

2

最簡單的方法是重新塑造你的數據在一個稍微不同的方式:

dd1 = melt(dd[,1:3], id=c("pos")) 
dd1$type = "gtt" 
dd2 = melt(dd[,c(1, 4:5)], id=c("pos")) 
dd2$type = "ftp" 
dd.melt = rbind(dd1, dd2) 

現在我們有一個指定變量「類型」的列:

R> head(dd.melt, 2) 
    pos variable value type 
1 8  gtt1 100 gtt 
2 9  gtt1 85 gtt 

一旦數據在此格式中,ggplot命令很簡單:

ggplot(dd.melt,aes(x=pos, y=value))+ 
    geom_line(aes(colour=type, group=variable)) + 
    scale_colour_manual(values=c(gtt="blue", ftp="red")) 

可以使用stat_smooth添加平滑線:

##span controls the smoothing 
g + stat_smooth(se=FALSE, span=0.5)