R语言统计分析——折线图

发布于:2024-10-18 ⋅ 阅读:(10) ⋅ 点赞:(0)

参考资料:R语言实战【第2版】

        如果将散点图上的点从左到右连接起来,就会得到一个折线图。以基础安装中的Orange数据集为例,展示如下:

# 设置绘图参数
opar<-par(no.readonly = TRUE)
# 画布拆分为1行2列
par(mfrow=c(1,2))
# 选取绘图数据
t1<-subset(Orange,Tree==1)
# 绘制散点图
plot(t1$age,t1$circumference,
     xlab="Age (days)",
     ylab="Circumference (mm)",
     main="Orange Tree 1 Growth")
# 绘制折线图
plot(t1$age,t1$circumference,
     xlab="Age (days)",
     ylab="Circumference (mm)",
     main="Orange Tree 1 Growth",
     type="b")
# 恢复初始参数设置
par(opar)

折线图一般可以用下列两个函数之一来绘制:

        plot(x,y,type=)

        lines(x,y,type=)

其中,x和y是要连接的(x,y)点的数值型向量。参数type可选值如下:

类型 图形外观
p 只有点
l 只有线
o 实心点和线(线覆盖在点上)

b、c

线连接点
s、S 阶梯线
h 直方图式的垂直线
n 不生成任何点和线(通常为后面的命令创建坐标轴)

type="p"生成典型的散点图

type="b"生成最常见的折线图

b和c之间的不同在于点是否出现或者线之间是否有空隙

type="s"和type="S"都是生成阶梯线,但第一种类型是先横线再上升,而第二种类型是先上升再横线。

        注意,plot()和lines()函数工作原理不同。plot()函数是在被调用时创建一幅新图,而lines()函数则是在已有的图形上田间信息,并不能自己生成图形。因此,lines()函数通常是在plot()函数生成一幅图形之后再被调用。如果对图形有要求,我们可以先通过plot()函数中的type="n"选线来创建坐标轴、标题和其他图形特征,然后再使用lines()函数添加各种需要绘制的曲线。

# 将因子型数据转换为数值型数据
Orange$Tree<-as.numeric(Orange$Tree)
ntree<-max(Orange$Tree)
xrange<-range(Orange$age)
yrange<-range(Orange$circumference)
# 创建图形
plot(xrange,
     yrange,
     type="n",
     xlab="Age(days)",
     ylab="Circumference(mm)")
# 设置需要的图形参数数据
colors<-rainbow(ntree)
linetype<-c(1:ntree)
plotchar<-seq(18,18+ntree,1)
# 添加线条
for (i in 1:ntree){
  tree<-subset(Orange,Tree==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:ntree,
       cex=0.4,
       col=colors,
       pch=plotchar,
       lty=linetype,
       title="Tree")