我是R的新手,想知道如何随着时间的推移绘制事物。
我的部分实验涉及使葡萄藤受到不同程度的水分胁迫。我的因变量是植物中水分胁迫(叶水势)的量度(以MPa计)。我的3级因子包括三种灌溉治疗。我有四个块,但有些数据丢失了,所以数据集有点不平衡。 (我实际上有两个主要因素,但我现在会保持简单)。以下是一些数据的味道:
date blk trt lwp
05/26/13 2 LD -1
05/26/13 3 LD -0.73
05/26/13 4 LD -0.78
05/26/13 2 SD -1.15
05/26/13 3 SD -0.8
05/26/13 4 SD -0.93
05/26/13 2 ED -1.2
05/26/13 3 ED -1.38
05/26/13 4 ED -1.2
06/20/13 1 LD -1
06/20/13 2 LD -1.03
06/20/13 3 LD -1.05
06/20/13 4 LD -0.8
06/20/13 1 SD -1.3
06/20/13 2 SD -1.28
06/20/13 3 SD -1.2
06/20/13 4 SD -1.13
06/20/13 1 ED -1.35
06/20/13 2 ED -1.3
06/20/13 3 ED -1.13
06/20/13 4 ED -1.08
我已经设法弄清楚如何将日期变成正确的格式,我知道如何制作非常基本的图(y~x类型),但这就是它。
我希望能够在同一个图表上随时间绘制每个治疗方案。那样我有三条线,x轴是按周,y轴是MPa。
答案 0 :(得分:0)
尝试以下两个示例,具体取决于您希望如何处理块值:
d <- read.table("your.data.file.txt", header=T)
# recreate data.frame with correct classes
df <- data.frame(
date = as.Date(strptime(d$date, "%m/%d/%y")),
blk = as.factor(d$blk),
trt = as.factor(d$trt),
lwp = as.numeric(d$lwp))
1:从平均块值绘制时间趋势。单个块值显示为参考
# require(ggplot2)
ggplot(data=df, aes(x=date, y=lwp, col=trt)) + geom_point() +
geom_line(stat="summary", fun.y="mean")
要清楚地区分处理,请将+ facet_wrap(~trt, ncol=3)
添加到上面的代码中。
2:在匹配的块值之间绘制时间趋势。不匹配的值未连接
# require(ggplot2)
ggplot(data=df, aes(x=date, y=lwp, col=trt, group=trt:blk)) + geom_point() +
geom_line()
如上所述,facet_wrap
可用于分隔治疗。
具有匹配块值的示例如下所示。通过添加facet_wrap函数生成右边的图形:
答案 1 :(得分:0)
试试这个(如果你想要汇总块)
# if you haven't installed this before, run:> install.packages("ggplot2")
require(ggplot2)
#import the file (I'd saved it to text)
myts<-read.table(file="ts.txt",header=TRUE,sep=" ", row.names=NULL)
# force the date column to Date format
myts$date<-as.Date(myts$date, format="%m/%d/%y")
# I guess you want to average the blocks?
rollup<-aggregate(lwp ~ date * trt, data=myts, FUN=mean)
# call the plot
ggplot(data=rollup) +
# plot x~y, the col command groups by trt
geom_line(aes(x=date, y=lwp, col=trt))