一、数据准备
#数据准备
data("ToothGrowth")
ToothGrowth$dose = factor(ToothGrowth$dose)
head(ToothGrowth)
使用R自带的数据库进行测试,数据包括len,supp,dose,其中len作为具体数值y,其他两个分组均作为因素数据进行分析作图。
二、基本语法
1、单组数据
library(ggplot2)
p = ggplot(ToothGrowth, aes(x = dose, y = len))
p + geom_boxplot() #图1
2、多组数据
使用supp作为分组依据,supp包括OJ和VC两类。
p + geom_boxplot(aes(fill = supp), position = position_dodge(1))#图2
图1
图2
三、基础进阶
以下的变化都是在图1(单组数据)的基础上进行的变化,多组数据的变化同理可用。
1、横纵坐标交换
p + geom_boxplot() + coord_flip()
2、哑铃型箱型图
p + geom_boxplot(notch = TRUE)
notch参数为TRUE是哑铃型,FALSE为方箱型。
横纵坐标交换
哑铃型箱型图
3、添加平均值点
p + geom_boxplot() + stat_summary(fun.y = mean, geom = "point",
shape = 18, size = 4, color = "red")
shape为添加点的类型,在散点图详解一文已经有详细介绍。
4、自定义横坐标
p + geom_boxplot() +
scale_x_discrete(limits=c("0.5", "2"))
可见,在规定横坐标时,可以去掉一些不想要的组,如上面我们就去掉了dose=1.5的一组数据。
添加平均值点
自定义横坐标
5、自定义箱体颜色
#不同箱体颜色(内部)基础默认颜色
p + geom_boxplot(aes(fill = dose))
#自定义每个箱体颜色
#填充颜色
p + geom_boxplot(aes(fill = dose)) +
scale_fill_manual(values=c("blue", "yellow", "grey"))
#线条颜色
p + geom_boxplot(aes(color = dose)) +
scale_color_manual(values=c("blue", "yellow", "grey"))
#多组数据的箱型图
p + geom_boxplot(aes(fill = supp), position = position_dodge(1)) +
scale_fill_manual(values=c("yellow", "grey"))
小结论:
在ggplot2作图中,参数fill都是表示内部的填充颜色
参数color都表示线条(边框)的颜色。
不同箱体颜色(内部)基础默认颜色
填充颜色定义
线条颜色定义
多组数据的箱型图颜色定义