本节书摘来异步社区《R数据可视化手册》一书中的第2章,第2.5节,作者:【美】Winston Chang,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.5 绘制箱线图
问题
如何绘制箱线图以对不同分布进行比较?
方法
使用plot()函数绘制箱线图(见图2-10)时向其传递两个向量:x和y。当x为因子型变量(与数值型变量对应)时,它会默认绘制箱线图:
复制代码
1
2plot(ToothGrowth$supp, ToothGrowth$len)``` 当两个参数向量包含在同一个数据框中时,也可以使用公式语法。公式语法允许我们在x轴上使用变量组合,如图 2-10 所示。
公式语法
boxplot(len ~ supo, data = ToothGrowth)
在x轴上引入两变量的交互
boxplot(len ~ supp + dose, data = ToothGrowth)
复制代码
1
2
3
4<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")`

当两个参数向量在同一个数据框内时,则可以使用下面的语句:
复制代码
1
2
3qplot(supp, len, data=ToothGrowth, geom="boxplot") # 这等价于 ggplot(ToothGrowth, aes(x=supp,y=len)) + geom_boxplot()
使用interaction()函数将分组变量组合在一起也可以绘制基于多分组变量的箱线图,如图2-11右图所示。本例中,dose变量是数值型,因此,我们必须先将其转化为因子型变量,再将其作为分组变量:
复制代码
1
2
3
4
5
6# 使用三个独立的向量参数 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节。
最后
以上就是温婉八宝粥最近收集整理的关于《R数据可视化手册》——2.5 绘制箱线图公式语法在x轴上引入两变量的交互的全部内容,更多相关《R数据可视化手册》——2.5 绘制箱线图公式语法在x轴上引入两变量内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复