绘制在ggplot
问题描述:
多个变量我有它看起来像这 -绘制在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轴的数据表。我试图用另一种颜色显示gtt1
和gtt2
行,而另一种颜色显示ftp1
和ftp2
,因为它们是样本的单独组(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()
在此先感谢
答
最简单的方法是重新塑造你的数据在一个稍微不同的方式:
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)
添加到您的情节:'+ scale_colour_manual(值= c(gtt1 =“blue”,gtt2 =“blue”,ftp1 =“red”,ftp2 =“red”)) – bdemarest