ggplot_boxplot
sunqi
2020/8/2
概述
箱式图适用于连续变量的可视化展示,显示变量的四分位数,中位数、异常值等 同时箱式图可以预览两组之间的差异,为后续统计分析做准备
目标
- 绘制普通箱式图
- 绘制分组箱式图
- 绘制多组箱式图
- 设置展示组
主要函数
geom_boxplot()
参数:width:设置宽度 notch:是否展示缺口,缺口展示的是中位数的置信区间 color, size, linetype: 颜色、大小、线的类型 fill:填充颜色 outlier.colour, outlier.shape, outlier.size:箱式图须的设置 ## 代码
示例数据集ToothGrowth
代码语言:javascript复制# 载入包
rm(list=ls())
library(ggplot2)
library(patchwork)
# 设置主题
theme_set(
theme_classic()
theme(legend.position = "top")
)
# 参数
data("ToothGrowth")
df <- ToothGrowth
# dose 分组,维生素C的剂量
# len目标变量,牙齿长度
df$dose <- as.factor(df$dose)
# 绘图
# 默认绘图
p=ggplot(df, aes(x = dose, y = len))
p1 <- p geom_boxplot()
# 添加缺口设计
p2 <- p geom_boxplot(notch = TRUE, fill = "lightgray")
# 添加均值点
stat_summary(fun= mean, geom = "point",
shape = 18, size = 2.5, color = "#FC4E07")
#将图1和图2放在一起查看
p1 p2
代码语言:javascript复制# 对于维生素剂量也可以更改显示顺序
# 通过scale_x_discrete()
p3 <- p geom_boxplot()
# 只显示0.5和2
scale_x_discrete(limits=c("0.5", "2"))
# 更改分组的显示顺序为2,0.5,1
p4 <- p geom_boxplot()
scale_x_discrete(limits=c("2", "0.5", "1"))
p3 p4
代码语言:javascript复制## Warning: Removed 20 rows containing missing values (stat_boxplot).
代码语言:javascript复制# 更改颜色
# scale_color_manual()
# scale_fill_manual()
# 先根据分组设置颜色
p5 <- p geom_boxplot(aes(color = dose))
# 通过这个函数自定义颜色配置
scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))
# 更改填充的颜色
p6 <- p geom_boxplot(aes(fill = dose))
scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))
# 对于color更改的是线的颜色,对于fill更改的是填充的颜色
p5 p6
代码语言:javascript复制# 多组箱式图绘制
p7 <- p
# 这里对填充使用的supp变量
# position_dodge设置组之间的距离
geom_boxplot(aes(fill = supp), position = position_dodge(0.9) )
scale_fill_manual(values = c("#999999", "#E69F00"))
p7
代码语言:javascript复制# 分面展示
p8 <- p7 facet_wrap(~supp)
p8
结束语
对于分面的问题还是最好不要尝试,会后悔。记得使用管道符、注释、养成好习惯。
love&peace