写在前面。
很多时候在处理数据前或者出图前,可能需要先对数据整体情况进行了解。这个时候我们可以用到R基础绘图的语句
和ggplot2
完成目标。
接下来,我们分不同的图形类型
进行啃书学习。
5. 绘制箱线图
如何绘制箱线图对不同分布进行比较?
使用ToothGrowth
数据集作为示例数据:
> str(ToothGrowth)
'data.frame': 60 obs. of 3 variables:
$ len : num 4.2 11.5 7.3 5.8 6.4 10 11.2 11.2 5.2 7 ...
$ supp: Factor w/ 2 levels "OJ","VC": 2 2 2 2 2 2 2 2 2 2 ...
$ dose: num 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 ...
- 使用R基础绘图系统
当传递给plot
函数的x
为因子型变量
时(与数值型变量对应),会绘制箱线图。
plot(ToothGrowth$supp, ToothGrowth$len)
当两个向量在一个数据集,可以使用公式语法
:
boxplot( len~ supp, data = ToothGrowth)
在x
轴使用两个变量交互:
boxplot( len~ supp + dose, data = ToothGrowth)
- 使用ggplot2的
qplot
函数
添加参数geom = "boxplot"
:
qplot(ToothGrowth$supp, ToothGrowth$len, geom = "boxplot")
向量在同一数据集时,也可以使用如下语句,是等价的:
qplot(supp, len, data = ToothGrowth, geom = "boxplot")
dev.off()
ggplot(ToothGrowth , aes(supp, len )) + geom_boxplot()
使用interaction
选项将分组变量组合在一起绘制多分组箱线图
,如果所需数据均在一个数据集下,下面的语句都是等价的:
qplot( interaction(ToothGrowth$supp, ToothGrowth$dose) , ToothGrowth$len, geom = "boxplot")
dev.off()
qplot( interaction(supp, dose), len, data = ToothGrowth, geom = "boxplot")
dev.off()
ggplot(ToothGrowth , aes(interaction(supp, dose), len )) + geom_boxplot()
都会产生如下数据结果:
以上。