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

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.kler.cn/news/350673.html

相关文章:

  • 【Python爬虫系列】_031.Scrapy_模拟登陆中间件
  • Vue 自定义指令 Directive 的高级使用与最佳实践
  • 鸿蒙next之导航组件跳转携带参数
  • 计算机网络原理总结C-网络层
  • SpringBoot面试热题
  • C++20中头文件syncstream的使用
  • 【uniapp】实现触底加载数据
  • Linux实验三
  • MySQL 数据库--查询
  • 《数据之海》
  • LeetCode 第419场周赛个人题解
  • Spring Boot在医疗病历B2B交互中的技术突破
  • 设计模式和软件框架的关系
  • 【优先算法】--双指针1
  • 【二刷hot-100】day1
  • 家政行业小程序需要哪些功能?
  • STM32—旋转编码器控制直流电机(标准库)
  • Luminar Neo v1.21.0.13934 图像编辑软件绿色便携版
  • Angular 19 的改进功能
  • torch.fft 出现 ComplexHalf 或 Half 不支持
  • java互联网医院智能导诊系统源码,Uniapp前端开发框架,支持一次编写,多端运行
  • 分享一个图片RGB以及16进制颜色提取的在线网站
  • Lobby——网络游戏大厅设计与参考建议!!!
  • FreeRTOS:事件标志组
  • SpringMVC源码-接口请求执行流程,包含九大内置组件的实例化初始化,拦截器调用,页面渲染等源码讲解
  • K8s中pod 间通信的两种情况