当前位置: 首页 > news >正文

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

参考资料: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")


http://www.mrgr.cn/news/48986.html

相关文章:

  • 自注意力机制self-attention中QKV矩阵的含义
  • 2025届保研-优营率0%上岸C9
  • C++面试速通宝典——24
  • 基于SpringBoot+Vue的陶怡居茶铺管理系统设计实现(协同过滤算法)
  • 实践体验密集小目标检测,以小麦麦穗颗粒为基准,基于嵌入式端超轻量级模型LeYOLO全系列【n/s/m/l】参数模型开发构建智能精准麦穗颗粒检测计数系统
  • 231水果滑块喜+1
  • g_strdup_printf
  • PostgreSql的备份和升级
  • 自定义注解和组件扫描在Spring Boot中动态注册Bean(二)
  • QEMU与KVM架构
  • 百度搜索引擎是如何解决用户点击率与网站排名关联度的呢?
  • 【ShuQiHere】K近邻算法(KNN)全面解析:从理论到实现
  • [Python]如何在Ubuntu中建置python venv虛擬環境,並安裝TensorFlow和OpenCV函式庫?
  • 1129.统计数字字符个数(vs2022中 gets, gets_s 无法使用的情况下)
  • 小红书运营教程04(爆款账号分解步骤)
  • 2-SAT 问题详解:逻辑约束与图论的结合
  • 禁用微软的windos安全中心
  • Javascript笔试题目(三)
  • Python求最小公倍数与最大公约数(附代码与解题思路)
  • JDK1.3主要特性