《R数据可视化手册》——2.5 绘制箱线图

简介:

本节书摘来异步社区《R数据可视化手册》一书中的第2章,第2.5节,作者:【美】Winston Chang,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.5 绘制箱线图

问题
如何绘制箱线图以对不同分布进行比较?

方法
使用plot()函数绘制箱线图(见图2-10)时向其传递两个向量:x和y。当x为因子型变量(与数值型变量对应)时,它会默认绘制箱线图:

plot(ToothGrowth$supp, ToothGrowth$len)```
当两个参数向量包含在同一个数据框中时,也可以使用公式语法。公式语法允许我们在x轴上使用变量组合,如图 2-10 所示。

公式语法

boxplot(len ~ supo, data = ToothGrowth)

在x轴上引入两变量的交互

boxplot(len ~ supp + dose, data = ToothGrowth)

<div style="text-align: center"><img src="https://yqfile.alicdn.com/7594296b8a5b6bc4066d87478b12fcd700446c3e.png" width="" height="">
</div>

对于ggplot2包,你可以使用qplot()函数绘制同样的图形(见图2-11),使用时将参数设定为geom="boxplot":

library(ggplot2)
qplot(ToothGrowth$supp, ToothGrowth$len, geom="boxplot")`

b1222908f2aeb1c5dba6deae137ebcb3373a5e94

当两个参数向量在同一个数据框内时,则可以使用下面的语句:

qplot(supp, len, data=ToothGrowth, geom="boxplot")
# 这等价于
ggplot(ToothGrowth, aes(x=supp,y=len)) + geom_boxplot()

使用interaction()函数将分组变量组合在一起也可以绘制基于多分组变量的箱线图,如图2-11右图所示。本例中,dose变量是数值型,因此,我们必须先将其转化为因子型变量,再将其作为分组变量:

# 使用三个独立的向量参数
qplot(interaction(ToothGrowth$supp, ToothGrowth$dose), ToothGrowth$len,geom="boxplot")
# 也可以以数据框中的列作为参数
qplot(interaction(supp, dose), len, data=ToothGrowth, geom="boxplot")
# 这等价于
ggplot(ToothGrowth, aes(x=interaction(supp, dose), y=len)) + geom_boxplot()

你可能会注意到基础绘图系统绘制的箱线图与ggplot2略有不同。这是因为两者在绘图过程中调用的计算分位数的方法略有差异。运行?geom_boxplot和?boxplot.base命令可以得到更多关于两者差异的细节信息。
另见
更多关于绘制箱线图的内容参见6.6节。

相关文章
|
Windows
Windows查看端口占用以及关闭相应的进程
Windows查看端口占用以及关闭相应的进程
770 0
|
移动开发 算法 JavaScript
平滑切换——PPT动画的全新玩法(原理篇)/04/O365智能系列(一)
平滑切换——PPT动画的全新玩法(原理篇)/04/O365智能系列(一)
3542 1
平滑切换——PPT动画的全新玩法(原理篇)/04/O365智能系列(一)
|
Dubbo Java 应用服务中间件
Dubbo-线程池调优实战分析
Dubbo-线程池调优实战分析
1213 0
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
3180 7
|
10月前
|
数据采集 人工智能 自然语言处理
《GANs:开启AI辅助设计创意草图的魔法之门》
在设计领域,创意草图是设计师灵感的起点。传统草图绘制耗时且依赖个人技能,而生成对抗网络(GANs)通过生成器和判别器的对抗学习,快速生成高质量创意草图,突破创作瓶颈。GANs不仅提高设计效率、激发创意,还降低了设计门槛,使更多人能参与设计。尽管存在生成质量不稳定、语义理解不足及数据隐私等挑战,但未来GANs将与自然语言处理、计算机视觉等技术融合,进一步提升草图生成的质量和智能化水平,推动设计行业迈向新高度。
380 16
|
Rust IDE Java
IDE和工具链配置指南
IDE和工具链配置指南
408 9
|
机器学习/深度学习 算法
神经网络的结构与功能
神经网络是一种广泛应用于机器学习和深度学习的模型,旨在模拟人类大脑的信息处理方式。它们由多层不同类型的节点或“神经元”组成,每层都有特定的功能和责任。
999 0
|
SQL 数据采集 JSON
Pandas 使用教程 Series、DataFrame
Pandas 使用教程 Series、DataFrame
294 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp微信小程序的贸易行业crm系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的贸易行业crm系统的详细设计和实现
271 1
|
小程序
基于微信小程序的音乐播放器设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的音乐播放器设计与实现(源码+lw+部署文档+讲解等)
523 0
基于微信小程序的音乐播放器设计与实现(源码+lw+部署文档+讲解等)