支持。祝新春快乐!
折线图的制作 前面对数据作了柱状图,柱状图适用于x轴是分类数据的时候,比如本例的品种。当x轴是一系列数据的时候,比如说处理后的时间或者播种后的时间,这个时候更希望得到一种变化的趋势,所以折线图更加合适。为了显示如何做折线图,这个地方把播种日期作为数值来运用。 #在group数据中添加一列播种日期,注意另外一个播种日期列的属性(mode)为factor,也就说他们会被认为是字符。 group$date2<-rep(c(16,20,22),2) #为了添加误差线,需要运用plotrix这个包中的plotCI这个方程,所以先加载这个包。 library(plotrix) #计算重量和VC含量的变化范围,这样可以方便定义Y轴的刻度范围(ylim) ran.wt<-range(cab$HeadWt) ran.vc<-range(cab$VitC) #同样的对图进行组合 par(mfrow=c(2,1),mai=c(0,0,0,0),omi=c(0.6,0.6,0.1,0.1)) #首先把图的框架画出来 plot(group$date2,group$Meanwt,type="n",ylim=ran.wt,xaxt="n") #添加品种39的结果和它们的标准误差 plotCI(x=group[group$Cul=="39","date2"],y=group[group$Cul=="39","Meanwt"],liw=group[group$Cul=="39","SEwt"],uiw=group[group$Cul=="39","SEwt"],pch=2,add=TRUE) #添加连接的折线 lines(x=group[group$Cul=="39","date2"],y=group[group$Cul=="39","Meanwt"],lty=1,lwd=2) #添加品种52的数据点和标准误差 plotCI(x=group[group$Cul=="52","date2"],y=group[group$Cul=="52","Meanwt"],liw=group[group$Cul=="52","SEwt"],uiw=group[group$Cul=="52","SEwt"],pch=0,add=TRUE) #添加折线 lines(x=group[group$Cul=="52","date2"],y=group[group$Cul=="52","Meanwt"],lty=2,lwd=2) #添加小图标志 text(16,4,"A",font=2) #添加图例 legend(18,4,legend=c("CV39","CV52"),lty=c(1,2),pch=c(1,0),bty="n") #对vc含量进行类似操作。读者可以与之前比较看这些命令之间改动的地方,熟悉之后其实可以复制粘铁替换就轻松搞定了。 plot(group$date2,group$Meanvc,type="n",ylim=ran.vc) plotCI(x=group[group$Cul=="39","date2"],y=group[group$Cul=="39","Meanvc"],liw=group[group$Cul=="39","SEvc"],uiw=group[group$Cul=="39","SEvc"],pch=2,add=TRUE) lines(x=group[group$Cul=="39","date2"],y=group[group$Cul=="39","Meanvc"],lty=1,lwd=2) plotCI(x=group[group$Cul=="52","date2"],y=group[group$Cul=="52","Meanvc"],liw=group[group$Cul=="52","SEvc"],uiw=group[group$Cul=="52","SEvc"],pch=0,add=TRUE) lines(x=group[group$Cul=="52","date2"],y=group[group$Cul=="52","Meanvc"],lty=2,lwd=2) text(16,80,"B",font=2) mtext("播种日期",side=1,adj=0.5,outer=TRUE,line=2) mtext("重量(kg)",side=2,at=0.75,adj=0.5,outer=TRUE,line=2) mtext("维他命含量(mg/kg)",side=2,at=0.25,adj=0.5,outer=TRUE,line=2),
线性相关分析及作图 此处把两种相关性的分析和作图方法组合到一起,即运用所有观测值和运用均值。 par(mfrow=c(2,1),mai=c(0,0,0,0),omi=c(0.6,0.6,0.1,0.1)) #运用所有观测值作图和分析 plot(cab$HeadWt,cab$VitC,type="n",xaxt="n") points(cab[cab$Cul=="c39","HeadWt"],cab[cab$Cul=="c39","VitC"],pch=1) points(cab[cab$Cul=="c52","HeadWt"],cab[cab$Cul=="c52","VitC"],pch=0) #线性模型的分析 lm1<-lm(VitC~HeadWt,data=cab) #结果的总结 summary(lm1) #在图中添加拟合的直线 abline(lm1) 添加方程 text(1.7,47, "y=77.6-7.57x\n(P<0.0001,n=58)") legend("topright",legend=c("CV39","CV52"),pch=c(1,0),title="A") #运用均值作图 plot(cab$HeadWt,cab$VitC,type="n") #添加x轴方向的误差线 plotCI(x=group[group$Cul=="39","Meanwt"],y=group[group$Cul=="39","Meanvc"],err="x",liw=group[group$Cul=="39","SEwt"],uiw=group[group$Cul=="39","SEwt"],pch=2,add=TRUE) plotCI(x=group[group$Cul=="52","Meanwt"],y=group[group$Cul=="52","Meanvc"],err="x",liw=group[group$Cul=="52","SEwt"],uiw=group[group$Cul=="52","SEwt"],pch=0,add=TRUE) #添加y轴方向的误差线 plotCI(x=group[group$Cul=="39","Meanwt"],y=group[group$Cul=="39","Meanvc"],err="y",liw=group[group$Cul=="39","SEvc"],uiw=group[group$Cul=="39","SEvc"],pch=2,add=TRUE) plotCI(x=group[group$Cul=="52","Meanwt"],y=group[group$Cul=="52","Meanvc"],err="y",liw=group[group$Cul=="52","SEvc"],uiw=group[group$Cul=="52","SEvc"],pch=0,add=TRUE) #对均值作线性拟合 lm2<-lm(Meanvc~Meanwt,data=group) summary(lm2) abline(lm2) text(1.7,47, "y=87.5-11.4x\n(P<0.05,n=58)") legend("topright",legend="B",bty="n") mtext("重量(kg)",side=1,at=0.5,adj=0.5,outer=TRUE,line=2) mtext("维他命含量(mg/kg)",side=2,at=0.5,adj=0.5,outer=TRUE,line=2)
小结 R的功能非常强大,这里仅仅给出了最经常运用到的一些操作。不过相信如果能把这里给出的代码全部弄懂会用,生态生理中的基本问题就都可以轻松解决了。当然,这些给出的代码可能不是最简单和最有效的,给出的另外一个目的也是在于让大家批评指正,共同提高。最后将所有代码整理放在一个.txt文件中,将它们复制到R中或者运用Tinn-R运行之后便可以得到给出的图。 ----------------------------------- 需要完整代码者请留下邮件。 请高手指出不足!
boxplot 箱图 柱状图 折线图 简单的线性回归 [ Last edited by zwdbordeaux on 2010-2-17 at 05:06 ]
真是学术界的活雷锋啊,勇赞!
高手高手,学习了
谢谢分享!!!!!!!
小可,学过SAS,是用SAS分析完后,再用Excel制图。 小可,想问楼主,与R软件的区别,各自的优缺点,或者R软件有什么特殊之处?
折线图的制作
前面对数据作了柱状图,柱状图适用于x轴是分类数据的时候,比如本例的品种。当x轴是一系列数据的时候,比如说处理后的时间或者播种后的时间,这个时候更希望得到一种变化的趋势,所以折线图更加合适。为了显示如何做折线图,这个地方把播种日期作为数值来运用。
#在group数据中添加一列播种日期,注意另外一个播种日期列的属性(mode)为factor,也就说他们会被认为是字符。
group$date2<-rep(c(16,20,22),2)
#为了添加误差线,需要运用plotrix这个包中的plotCI这个方程,所以先加载这个包。
library(plotrix)
#计算重量和VC含量的变化范围,这样可以方便定义Y轴的刻度范围(ylim)
ran.wt<-range(cab$HeadWt)
ran.vc<-range(cab$VitC)
#同样的对图进行组合
par(mfrow=c(2,1),mai=c(0,0,0,0),omi=c(0.6,0.6,0.1,0.1))
#首先把图的框架画出来
plot(group$date2,group$Meanwt,type="n",ylim=ran.wt,xaxt="n")
#添加品种39的结果和它们的标准误差
plotCI(x=group[group$Cul=="39","date2"],y=group[group$Cul=="39","Meanwt"],liw=group[group$Cul=="39","SEwt"],uiw=group[group$Cul=="39","SEwt"],pch=2,add=TRUE)
#添加连接的折线
lines(x=group[group$Cul=="39","date2"],y=group[group$Cul=="39","Meanwt"],lty=1,lwd=2)
#添加品种52的数据点和标准误差
plotCI(x=group[group$Cul=="52","date2"],y=group[group$Cul=="52","Meanwt"],liw=group[group$Cul=="52","SEwt"],uiw=group[group$Cul=="52","SEwt"],pch=0,add=TRUE)
#添加折线
lines(x=group[group$Cul=="52","date2"],y=group[group$Cul=="52","Meanwt"],lty=2,lwd=2)
#添加小图标志
text(16,4,"A",font=2)
#添加图例
legend(18,4,legend=c("CV39","CV52"),lty=c(1,2),pch=c(1,0),bty="n")
#对vc含量进行类似操作。读者可以与之前比较看这些命令之间改动的地方,熟悉之后其实可以复制粘铁替换就轻松搞定了。
plot(group$date2,group$Meanvc,type="n",ylim=ran.vc)
plotCI(x=group[group$Cul=="39","date2"],y=group[group$Cul=="39","Meanvc"],liw=group[group$Cul=="39","SEvc"],uiw=group[group$Cul=="39","SEvc"],pch=2,add=TRUE)
lines(x=group[group$Cul=="39","date2"],y=group[group$Cul=="39","Meanvc"],lty=1,lwd=2)
plotCI(x=group[group$Cul=="52","date2"],y=group[group$Cul=="52","Meanvc"],liw=group[group$Cul=="52","SEvc"],uiw=group[group$Cul=="52","SEvc"],pch=0,add=TRUE)
lines(x=group[group$Cul=="52","date2"],y=group[group$Cul=="52","Meanvc"],lty=2,lwd=2)
text(16,80,"B",font=2)
mtext("播种日期",side=1,adj=0.5,outer=TRUE,line=2)
mtext("重量(kg)",side=2,at=0.75,adj=0.5,outer=TRUE,line=2)
mtext("维他命含量(mg/kg)",side=2,at=0.25,adj=0.5,outer=TRUE,line=2),
线性相关分析及作图
此处把两种相关性的分析和作图方法组合到一起,即运用所有观测值和运用均值。
par(mfrow=c(2,1),mai=c(0,0,0,0),omi=c(0.6,0.6,0.1,0.1))
#运用所有观测值作图和分析
plot(cab$HeadWt,cab$VitC,type="n",xaxt="n")
points(cab[cab$Cul=="c39","HeadWt"],cab[cab$Cul=="c39","VitC"],pch=1)
points(cab[cab$Cul=="c52","HeadWt"],cab[cab$Cul=="c52","VitC"],pch=0)
#线性模型的分析
lm1<-lm(VitC~HeadWt,data=cab)
#结果的总结
summary(lm1)
#在图中添加拟合的直线
abline(lm1)
添加方程
text(1.7,47, "y=77.6-7.57x\n(P<0.0001,n=58)")
legend("topright",legend=c("CV39","CV52"),pch=c(1,0),title="A")
#运用均值作图
plot(cab$HeadWt,cab$VitC,type="n")
#添加x轴方向的误差线
plotCI(x=group[group$Cul=="39","Meanwt"],y=group[group$Cul=="39","Meanvc"],err="x",liw=group[group$Cul=="39","SEwt"],uiw=group[group$Cul=="39","SEwt"],pch=2,add=TRUE)
plotCI(x=group[group$Cul=="52","Meanwt"],y=group[group$Cul=="52","Meanvc"],err="x",liw=group[group$Cul=="52","SEwt"],uiw=group[group$Cul=="52","SEwt"],pch=0,add=TRUE)
#添加y轴方向的误差线
plotCI(x=group[group$Cul=="39","Meanwt"],y=group[group$Cul=="39","Meanvc"],err="y",liw=group[group$Cul=="39","SEvc"],uiw=group[group$Cul=="39","SEvc"],pch=2,add=TRUE)
plotCI(x=group[group$Cul=="52","Meanwt"],y=group[group$Cul=="52","Meanvc"],err="y",liw=group[group$Cul=="52","SEvc"],uiw=group[group$Cul=="52","SEvc"],pch=0,add=TRUE)
#对均值作线性拟合
lm2<-lm(Meanvc~Meanwt,data=group)
summary(lm2)
abline(lm2)
text(1.7,47, "y=87.5-11.4x\n(P<0.05,n=58)")
legend("topright",legend="B",bty="n")
mtext("重量(kg)",side=1,at=0.5,adj=0.5,outer=TRUE,line=2)
mtext("维他命含量(mg/kg)",side=2,at=0.5,adj=0.5,outer=TRUE,line=2)
小结
R的功能非常强大,这里仅仅给出了最经常运用到的一些操作。不过相信如果能把这里给出的代码全部弄懂会用,生态生理中的基本问题就都可以轻松解决了。当然,这些给出的代码可能不是最简单和最有效的,给出的另外一个目的也是在于让大家批评指正,共同提高。最后将所有代码整理放在一个.txt文件中,将它们复制到R中或者运用Tinn-R运行之后便可以得到给出的图。
-----------------------------------
需要完整代码者请留下邮件。
请高手指出不足!
boxplot 箱图
柱状图
折线图
简单的线性回归
[ Last edited by zwdbordeaux on 2010-2-17 at 05:06 ]
真是学术界的活雷锋啊,勇赞!
高手高手,学习了
谢谢分享!!!!!!!
小可,学过SAS,是用SAS分析完后,再用Excel制图。
小可,想问楼主,与R软件的区别,各自的优缺点,或者R软件有什么特殊之处?