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

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")`

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

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节。

时间: 2024-10-16 05:28:08

《R数据可视化手册》——2.5 绘制箱线图的相关文章

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

2.5 绘制箱线图 问题如何绘制箱线图以对不同分布进行比较? 方法使用plot()函数绘制箱线图(见图2-10)时向其传递两个向量:x和y.当x为因子型变量(与数值型变量对应)时,它会默认绘制箱线图: plot(ToothGrowth$supp, ToothGrowth$len) 当两个参数向量包含在同一个数据框中时,也可以使用公式语法.公式语法允许我们在x轴上使用变量组合,如图 2-10 所示. # 公式语法 boxplot(len ~ supo, data = ToothGrowth) #

《R数据可视化手册》一导读

前 言 R数据可视化手册几年前读研时我开始用R,主要用来分析我在科研工作中收集到的数据.我使用R首先是想摆脱SPSS这样的统计软件的禁锢,即严格的环境和死板的分析.更何况,R是免费的,所以我用不着说服别人为我购买一套这样的软件--这对一个穷研究生来说是相当的重要!此后,随着我对R的了解不断深入,我才发现原来R还可以绘制出非常优秀.动人的数据图形. 本书的每个"技巧"中,都列出了一个问题和对应的解决方法.在大多数情况下,我提供的并不是R中唯一的实现方法,但却是我认为的最佳方案.R如此受欢

《R数据可视化手册》——导读

前言 R数据可视化手册几年前读研时我开始用R,主要用来分析我在科研工作中收集到的数据.我使用R首先是想摆脱SPSS这样的统计软件的禁锢,即严格的环境和死板的分析.更何况,R是免费的,所以我用不着说服别人为我购买一套这样的软件--这对一个穷研究生来说是相当的重要!此后,随着我对R的了解不断深入,我才发现原来R还可以绘制出非常优秀.动人的数据图形. 本书的每个"技巧"中,都列出了一个问题和对应的解决方法.在大多数情况下,我提供的并不是R中唯一的实现方法,但却是我认为的最佳方案.R如此受欢迎

《R数据可视化手册》一第3章 条形图3.1 绘制简单条形图

第3章 条形图 R数据可视化手册 条形图也许是最常用的数据可视化方法,通常用来展示不同的分类下(在x轴上)某个数值型变量的取值(在y轴上).例如,条形图可以用来形象地展示四种不同商品的价格情况,但不适宜用来展示商品价格随时间的变动趋势,因为这里时间是一个连续变量--尽管我们也可以这么做,后面会看到这种情形. 绘制条形图时需特别注意一个重要的细节:有时条形图的条形高度表示的是数据集中变量的频数,有时则表示变量取值本身.牢记这个区别--这里极易混淆,因为两者与数据集的对应关系不同,但又对应同样的术语

《R数据可视化手册》一第2章 快速探索数据2.1 绘制散点图

第2章 快速探索数据 R数据可视化手册虽然本书中大部分图形都是通过ggplot2包绘制的,但这并不是R绘制图形的唯一方法.要快速探索数据,有时使用R基础包中的绘图函数会很有用.这些函数随R软件默认安装,无需另行安装附加包.它们简短易输入,处理简单问题时使用方便,且运行速度极快. 如果你想绘制较为复杂的图形,那么,转用ggplot2包通常是更好的选择.部分原因在于ggplot2提供了一个统一的接口和若干选项来替代基础绘图系统中对图形的修修补补和各种特例.一旦掌握了ggplot2的工作机制,你就可以

《R数据可视化手册》一第1章 R基础1.1 安装包

第1章 R基础 R数据可视化手册本章包括以下基础知识:安装包.使用包和加载数据. 如果你想快速上手,本书大多数技巧都需要安装ggplot2和gcookbook包.运行下面命令来安装: install.packages(c("ggplot2", "gcookbook"))然后,在每个R会话中,你需要在运行本书的例子之前先加载它们: library(ggplot2)library(gcookbook)附录A提供了一个关于ggplot2绘图包的简介,主要是面向不熟悉ggp

《R数据可视化手册》——第1章 R基础

第1章 R基础 R数据可视化手册本章包括以下基础知识:安装包.使用包和加载数据. 如果你想快速上手,本书大多数技巧都需要安装ggplot2和gcookbook包.运行下面命令来安装: install.packages(c("ggplot2", "gcookbook"))``` 然后,在每个R会话中,你需要在运行本书的例子之前先加载它们: library(ggplot2)library(gcookbook)`附录A提供了一个关于ggplot2绘图包的简介,主要是面向不

《R数据可视化手册》——第2章 快速探索数据

第2章 快速探索数据 R数据可视化手册虽然本书中大部分图形都是通过ggplot2包绘制的,但这并不是R绘制图形的唯一方法.要快速探索数据,有时使用R基础包中的绘图函数会很有用.这些函数随R软件默认安装,无需另行安装附加包.它们简短易输入,处理简单问题时使用方便,且运行速度极快. 如果你想绘制较为复杂的图形,那么,转用ggplot2包通常是更好的选择.部分原因在于ggplot2提供了一个统一的接口和若干选项来替代基础绘图系统中对图形的修修补补和各种特例.一旦掌握了ggplot2的工作机制,你就可以

《R数据可视化手册》——第3章 条形图

第3章 条形图 R数据可视化手册条形图也许是最常用的数据可视化方法,通常用来展示不同的分类下(在x轴上)某个数值型变量的取值(在y轴上).例如,条形图可以用来形象地展示四种不同商品的价格情况,但不适宜用来展示商品价格随时间的变动趋势,因为这里时间是一个连续变量--尽管我们也可以这么做,后面会看到这种情形. 绘制条形图时需特别注意一个重要的细节:有时条形图的条形高度表示的是数据集中变量的频数,有时则表示变量取值本身.牢记这个区别--这里极易混淆,因为两者与数据集的对应关系不同,但又对应同样的术语.