我们以绘制五种橘树随时间推移的生长状况为例,逐步展示一个更复杂折线图的创建过程。数据来源于R自带的数据集。
首先调取数据Orange
data(Orange)
接着将因子转化为数值型并查看变量值的范围
###将因子转化为数值型##
Orange$Tree <- as.numeric(Orange$Tree)
ntrees <- max(Orange$Tree)
xrange <- range(Orange$age)
yrange <- range(Orange$circumference)
创建图形
注意, plot() 和 lines() 函数工作原理并不相同。 plot() 函数是在被调用时创建一幅新图,
而 lines() 函数则是在已存在的图形上添加信息,并不能自己生成图形。
因此, lines() 函数通常是在 plot() 函数生成一幅图形后再被调用。如果对图形有要求,
你可以先通过 plot() 函数中的 type="n" 选项来创建坐标轴、标题和其他图形特征,然后再使用
lines() 函数添加各种需要绘制的曲线。
###创建图形##
plot(xrange,yrange,
type = "n",
xlab = 'Age(days)',##x轴名称
ylab = 'Circumference(mm)'##y轴名称
)
colors <- rainbow(ntrees)###线条颜色
linetype <- c(1:ntrees)##线条类型
plotchar <- seq(18,18+ntrees,1)##待会用来设置绘图符号设置的参数
给plot图添加线条
###添加线条##用for循环语句
for(i in 1:ntrees){
tree <- subset(Orange,Tree==i)###选取第i种数的数据
lines(tree$age,tree$circumference,
type='b',
lwd=2,###线条宽度
lty=linetype[i],
col=colors[i],
pch=plotchar[i]###设置绘图符号设置的参数
)
}
添加标题
title('Tree Growth','example of line plot')
添加图例
legend(xrange[1],yrange[2],
1:ntrees,
cex=0.8,
col=colors,
pch=plotchar,
lty=linetype,
title = 'Tree'
)
plot() 函数先用来创建空图形,只设定了轴标签和轴范围,并没有
绘制任何数据点,每种橘树独有的折线和点都是随后通过 lines() 函数来添加的。
展示五种橘树生长状况的折线图
可以看到,Tree 4和Tree 5在整个时间段中一直保持着最快的生长速度,而且Tree 5在大约664天的时候超
过了Tree 4。