利用plot()绘制
在上一章中我们讲过plot()绘图的基本结构,主要通过type参数来设置绘制图形的类型。
"p":绘点(默认值);
"l":绘制线;
"b":同时绘制点和线;
"c":仅绘制参数"b"所示的线;
"o":同时绘制点和线,且线穿过点;
"h":绘制出点到横坐标轴的垂直线;
"s":绘制出阶梯图(先横后纵);
"S":绘制出阶梯图(先纵后竖);
"n":作空图。
代码语言:javascript复制x <- seq(-10,10)
y <- x ^ 2
plot(x, y, main="折线图", xlab="横坐标", ylab="纵坐标", type="o")
abline(h=seq(0,100,10),col="grey")
abline(v=seq(-10,10,1),col="grey")
代码语言:javascript复制x <- seq(-10,10)
y <- x ^ 2
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)
代码语言:javascript复制x <- seq(-10,10)
y <- x ^ 2
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包来调色。这个包慢慢的会讲解。
代码语言:javascript复制#更改点的颜色
library(RColorBrewer)
color <- brewer.pal(10,'Spectral')
points(x,y,col=color,pch=16,cex=1.5)
但是这样感觉还是不好看,我们可以利用gplots包设置2种颜色,数值高为一种,数值低为一种,中间就为这2种颜色的渐变色。和热图的渐变色一样。
代码语言:javascript复制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:大小
代码语言:javascript复制#read in data
data = read.table('line-4.txt', sep="t", header=T)
head(data)
#draw lines using ggplot2
library(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)
添加误差线
代码语言:javascript复制#add errorbar
ggplot(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绘带状图
代码语言:javascript复制library(ggplot2)
#read in data
data = read.table("ribbon_plot.txt", header=T, sep="t")
#draw the ribbon
ggplot(data, aes(Year, Anomaly10y))
geom_ribbon(aes(ymin=Anomaly10y-Unc10y, ymax=Anomaly10y Unc10y), alpha=.2)
geom_line()
代码语言:javascript复制#change the visualization, using lines instead of ribbon
ggplot(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()
代码语言:javascript复制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")