教程代码和文件,关注本公众号,后台回复:R语言基础绘图代码
R基础教程可先阅读:R语言编程基础第一篇:语法基础
利用plot()绘制
在上一章中我们讲过plot()绘图的基本结构,主要通过type参数来设置绘制图形的类型。
"p":绘点(默认值);
"l":绘制线;
"b":同时绘制点和线;
"c":仅绘制参数"b"所示的线;
"o":同时绘制点和线,且线穿过点;
"h":绘制出点到横坐标轴的垂直线;
"s":绘制出阶梯图(先横后纵);
"S":绘制出阶梯图(先纵后竖);
"n":作空图。
x q(-10,10)y x ^ plot(x, y, main="折线图", xlab="横坐标", ylab="纵坐标", type="o")abline(h=seq(0,100,10),col="grey")abline(v=seq(-10,10,1),col="grey")
x q(-10,10)y x ^ plot(x, y, type="n", xlab="", ylab="", axes=F) lines(x,y) #添加坐标点axis(1) #添加横轴axis(at=seq(0,100,10), side=2) #添加纵轴box() #补齐散点图的边框title(main="折线图", sub="subtitle", xlab="x轴", ylab="y轴")abline(h=seq(0,100,10),col="grey")abline(v=seq(-10,10,1),col="grey")#加上点points(x,y)
x 10,y ^ plot(x, y, type="n", xlab="", ylab="", axes=F) lines(x,y) #添加坐标点axis(1) #添加横轴axis(at=seq(0,100,10), side=2) #添加纵轴box() #补齐散点图的边框title(main="折线图", sub="subtitle", xlab="x轴", ylab="y轴")abline(h=seq(0,100,10),col="grey")abline(v=seq(-10,10,1),col="grey")#加上点points(x,y,col="red",pch=16)
我们可以更改成渐变色,RColorBrewer包来调色。这个包慢慢的会讲解。
#更改点的颜色library(RColorBrewer)color 'Spectral')points(x,y,col=color,pch=16,cex=1.5)
但是这样感觉还是不好看,我们可以利用gplots包设置2种颜色,数值高为一种,数值低为一种,中间就为这2种颜色的渐变色。和热图的渐变色一样。
library(gplots)color <- colorpanel(20,low="red", mid="green", high="red")points(x,y,col=color,pch=16,cex=1.5)
利用ggplot2绘折线图
前面我们说过ggplot2绘制散点图是ggplot()+geom_point()格式,绘制折线图,我们只需要再加上geom_line()。在这里说明一下geom_xxx()中的参数:
• alpha: 透明度, 0-1
• colour:颜色,名称或者RGB编码
• fill:填充色
• shape:形状,同pch
• size:大小
#read in datadata = read.table('line-4.txt', sep="\t", header=T)head(data)#draw lines using ggplot2library(ggplot2)pd = position_dodge(0.3)ggplot(data, aes(Date, Weight, colour=Cultivar, group=Cultivar))+ geom_line(size=1, position=pd) + geom_point(size=3, position=pd)
添加误差线
#add errorbarggplot(data, aes(Date, Weight, colour=Cultivar, group=Cultivar))+ geom_errorbar(aes(ymin=Weight-se, ymax=Weight+se), width=0.2, size=0.25, colour="black", position=pd) + geom_line(size=1, position=pd) + geom_point(size=3, position=pd)
利用ggplot2绘带状图
library(ggplot2)#read in datadata = read.table("ribbon_plot.txt", header=T, sep="\t")#draw the ribbonggplot(data, aes(Year, Anomaly10y)) + geom_ribbon(aes(ymin=Anomaly10y-Unc10y, ymax=Anomaly10y+Unc10y), alpha=.2) + geom_line()
#change the visualization, using lines instead of ribbonggplot(data, aes(Year, Anomaly10y)) + geom_line(aes(y=Anomaly10y-Unc10y), colour="blue", linetype="dotted") + geom_line(aes(y=Anomaly10y+Unc10y), colour="red", linetype="dotted") + geom_line()
ggplot(data, aes(Year, Anomaly10y)) + geom_line(aes(y=Anomaly10y-Unc10y), colour="blue") + geom_line(aes(y=Anomaly10y+Unc10y), colour="red") + geom_line(linetype="dotted")