R语言绘制箱线图(Box plot)

这篇具有很好参考价值的文章主要介绍了R语言绘制箱线图(Box plot)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天要给大家分享的是如何用R语言绘制箱线图(Box plot)。

箱线图(Box plot)是在科研中出现频率非常高的一类图,它主要由5个部分组成:极小值、下四分位数、中位数、上四分位数、极大值。箱线图能够很好的展示数据的分布特征,可以通过箱线图判断一组数据是否呈对称分布,还能展示数据是否存在离群值等。

本次所使用的本次绘图所使用r包为R中内置boxplot包,无需重复安装加载。

一、简单箱线图绘制

第一步:导入数据

数据为R中自带数据集“Insect Sprays”,InsectSprays数据集为不同杀虫剂处理的农业试验单位中的昆虫计数。

data<-InsectSprays

数据展示:

该数据集一共包含72条数据,其中count表示不同农田中的昆虫数量;spray表示不同的农田,一共是6个农田,分别用A、B、C、D、E、F来表示。

r语言在同一坐标系里作两个箱形图,R,r语言,python,开发语言

第二步:箱线图绘制

Ⅰ. 简单箱线图绘制

## 绘制简单Boxplot
boxplot(count ~ spray, #代表以count为x轴,以spray为y轴
        data = data,  #指定数据集为data
        col = "pink") #定制箱线图的颜色为粉色

图片展示:

r语言在同一坐标系里作两个箱形图,R,r语言,python,开发语言

图片解释:

以上图为例,箱线图的中黑色加粗的线即为中位数;箱体(粉红色部分)上边缘代表上四分位数,箱体下边缘代表下四分位数;最上面的一根线代表极大值,最下面的一根线代表极小值。图中的那两个圈圈就代表离群值。

如何通过箱线图判断判断数据是否服从对称分布呢?以上图为例:

A. 试验田A以及F昆虫计数的中位数相对于整个箱体来说是偏下的,中位数比较靠近下四分位数,也就是说数据的大部分在箱体的下端,那么它就是右偏分布

B. 同理,如果中位数恰好在箱体正中间,那么说明数据服从对称分布

C. 试验田B昆虫计数的中位数相对于整个箱体来说是偏上的,中位数比较靠近上四分位数,也就是说数据的大部分在箱体的上端,那么它就是左偏分布

(记住是左偏还是右偏的小窍门:曲线往哪边儿拖尾就是哪种偏态)

r语言在同一坐标系里作两个箱形图,R,r语言,python,开发语言

 Ⅱ. 修改箱线图细节

#定制箱线图——修改箱线图细节
boxplot(count ~ spray, #代表以count为x轴,以spray为y轴
        data=data,
        border=TRUE, #是否添加箱线图的边界线,默认为TRUE
        col="skyblue", #修改箱线图整体的颜色
        xlab="The type of spray", #添加X轴标签
        ylab="Number of insects", #添加y轴标签
        ylim=c(0,30), #修改Y轴刻度值
        medcol="red", #修改箱线图中间的线(中位数)的颜色
        medlwd=4, #修改箱线图中间的线(中位数)的粗细,数值越大线越粗
        medlty=1 #修改箱线图中间的线(中位数)的类型,1代表实线,2代表虚线
)

图片展示:

r语言在同一坐标系里作两个箱形图,R,r语言,python,开发语言

#题外话:给箱线图改个外观(科研中不太会用到,娱乐一下)
boxplot(count ~ spray, 
        data = data,
        notch = TRUE, 
        add = TRUE, 
        col = "skyblue")

 图片展示:

r语言在同一坐标系里作两个箱形图,R,r语言,python,开发语言

#对y轴取对数
boxplot(decrease ~ treatment, 
        data = OrchardSprays, 
        col = "bisque",
        log = "y" #表示取y轴的对数
        )

 图片展示:

r语言在同一坐标系里作两个箱形图,R,r语言,python,开发语言

## horizontal=TRUE,水平转置x轴与y轴
boxplot(decrease ~ treatment, 
        data = OrchardSprays, 
        col = "bisque",
        log = "x", #表示取x轴的对数
        horizontal=TRUE #水平转置x轴与y轴
        )

 图片展示:

r语言在同一坐标系里作两个箱形图,R,r语言,python,开发语言

Ⅲ. 多组箱线图绘制

这一部分所使用的数据集依然是R中自带数据集“ToothGrowth”。该数据集记录了60只豚鼠在服用不同维生素C及不同剂量后牙齿生长的长度。其中len表示豚鼠牙齿长度;supp表示不同的维生素C类型,共有橙汁或抗坏血酸两种类型(分别记为OJ和VC);dose表示豚鼠接受的维生素C的剂量(milligrams/day)。每只动物通过橙汁或抗坏血酸两种递送方式中的一种,接受三种剂量水平(0.5、1和2毫克/天)中的一种。

数据展示:

r语言在同一坐标系里作两个箱形图,R,r语言,python,开发语言

 ①箱线图绘制

data<-ToothGrowth
boxplot(len ~ dose, data = data,
        boxwex = 0.25, #定制箱线图箱体的宽度
        at = 1:3 - 0.1, #一共是三种不同的剂量,因此at=1:3,-0.1指定箱线图偏移(左偏)的位置(可以省略不要,那么箱线图图片整体位置居中)
        subset = supp == "VC", #这里通过指定supp类型为VC/OJ 
        col = "yellow", #定制箱线图颜色
        main = "Tooth Length", #添加箱线图标题/抬头
        xlab = "Vitamin C dose mg", #添加x轴标签
        ylab = "tooth length", #添加y轴标签
        xlim = c(0.5, 3.5), #设置x轴范围
        ylim = c(0, 35), #设置y轴范围
        yaxs = "i" #在R中默认会画出增加4%的坐标轴,如果想画出正好是xlim或ylim的长度,可以使用 xaxs/yaxs="i"
        )

图片展示:

r语言在同一坐标系里作两个箱形图,R,r语言,python,开发语言

r语言在同一坐标系里作两个箱形图,R,r语言,python,开发语言 

②多组箱线图绘制:

boxplot(len ~ dose, data = data, 
        add = TRUE, #TRUE在上个图形的基础上叠加下一个图形,将两组箱线图放在一起的关键
        boxwex = 0.25, at = 1:3 + 0.2, #设置箱线图位置,+0.2也就是向偏移0.2个单位
        subset = supp == "OJ", 
        col = "orange")
#添加图例
legend(2, 9, c("Ascorbic acid", "Orange juice"),
       fill = c("yellow", "orange"))




#也可以参考以下代码,一步到位直接绘制两组箱线图
boxplot(len ~ dose:supp, #因子*交互项,即给箱线图添加一个分组标准supp
        data = data,
        boxwex = 0.5, col = c("orange", "yellow"),
        main = "Tooth Growth",
        xlab = "dose mg", 
        ylab = "tooth length",
        sep = " ", #设置分隔符
        lex.order = TRUE, #TRUE表示按顺序排列x轴(按does大小排列箱线图)
        ylim = c(0, 35), yaxs = "i")

 图片展示:r语言在同一坐标系里作两个箱形图,R,r语言,python,开发语言

Reference:boxplot function - RDocumentation

 今天的分享到此结束。(欢迎我的另一个草稿箱——公众号:统计小菜椒)文章来源地址https://www.toymoban.com/news/detail-770789.html

到了这里,关于R语言绘制箱线图(Box plot)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于世界坐标系,相机坐标系,图像坐标系,像素坐标系的一些理解

    在项目中,研究标定时,像素坐标与轴位置的关系时,需要用到关于坐标系的转换。在此也就是找到世界坐标系与像素坐标系的转换关系。想理清楚故做如下记录。 四坐标关系图如下: 图中: 世界坐标系(O W —X W Y W Z W ): 一个三维直角坐标系,以其为基准可以描述相机

    2024年02月09日
    浏览(72)
  • 对于SLAM定位中各类坐标系的理解(坐标系,里程计坐标系,基座坐标系与雷达坐标系)

    最近系统性学习了一遍LIO-SAM,开始的时候一直搞不懂里程计坐标系,经过不断学习才有了一点自己的拙见。 引言 :首先我们搞清楚SLAM算法主要是解决建图与定位问题,其更 侧重定位 ,即让机器人知道自己在全局地图的哪个位置,只有这样才能继续后续的预测、感知、控制

    2024年02月03日
    浏览(49)
  • 世界坐标系、相机坐标系和图像坐标系的转换

    之前只是停留在会用的阶段,一直没去读懂计算的原理,今天通读了大佬的文章,写的言简意赅,感谢感谢~~特此记录一下,仅用作个人笔记 贴链接,十分感谢~ https://blog.csdn.net/weixin_44278406/article/details/112986651 https://blog.csdn.net/guyuealian/article/details/104184551 将三维物体转换成照

    2023年04月15日
    浏览(64)
  • 机器人坐标系转换从局部坐标系转换到世界坐标系

    矩阵方式: 下面是代码: 函数方式: 根据三角函数的特性,可以进行一下简化: 下面是简化前的代码示例:

    2024年04月16日
    浏览(65)
  • 相机坐标系、像素坐标系转换

    相机内参矩阵是相机的重要参数之一,它描述了相机光学系统的内部性质,例如焦距、光学中心和图像畸变等信息。在计算机视觉和图形学中,相机内参矩阵通常用于将图像坐标系中的像素坐标转换为相机坐标系中的三维坐标,或者将相机坐标系中的三维坐标投影到图像坐标

    2024年02月13日
    浏览(48)
  • (02)Cartographer源码无死角解析-(80) 核心要点→local坐标系、子图坐标系、切片坐标系、地图坐标系等相转换与联系

    讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/127350885   文末正下方中心提供了本人 联系方式, 点击本人照片

    2024年02月16日
    浏览(47)
  • 柱坐标系与直角坐标系的转换

    1.柱坐标系转化为直角坐标系:柱坐标系(r,φ,z)与直角坐标系(x,y,z)的转换关系 x=rcosφ y=rsinφ z=z 2.直角坐标系转化为柱坐标系:直角坐标系(x,y,z)与柱坐标系(r,φ,z)的转换关系: r= φ= z=z

    2024年02月11日
    浏览(42)
  • 图像坐标系如何转换到相机坐标系。

    问题描述:图像坐标系如何转换到相机坐标系。 问题解答: 图像坐标系的定义: 图像坐标系是用于描述数字图像中像素位置的坐标系。图像坐标系的原点是相机光轴与成像平面的交点。X轴沿着成像平面的水平方向正向,Y轴沿着成像平面的垂直方向正向。 相机坐标系的定义

    2024年02月04日
    浏览(51)
  • 高德地图 其他地图坐标系转化为高德坐标系

    此篇以百度地图为例  1、去高德地图注册自己的key(注册流程可借鉴百度地图注册流程) 2、什么是坐标 地球坐标系——WGS84:常见于 GPS 设备,Google 地图等国际标准的坐标体系。 火星坐标系——GCJ-02:中国国内使用的被强制加密后的坐标体系,高德坐标就属于该种坐标体系

    2024年02月08日
    浏览(41)
  • Cesium:CGCS2000坐标系的xyz坐标转换成WGS84坐标系的经纬高度,再转换到笛卡尔坐标系的xyz坐标

    作者:CSDN @ _乐多_ 本文将介绍使用 Vue 、cesium、proj4 框架,实现将CGCS2000坐标系的xyz坐标转换成WGS84坐标系的经纬高度,再将WGS84坐标系的经纬高度转换到笛卡尔坐标系的xyz坐标的代码。并将输入和输出使用 Vue 前端框架展示了出来。代码即插即用。 网页效果如下图所示, 一、

    2024年02月06日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包