R语言绘图系列—箱线图+贝赛尔曲线
(一): 科研绘图一:箱线图(添加贝赛尔曲线)
文章目录
- R语言绘图系列---箱线图+贝赛尔曲线
- (一): 科研绘图一:箱线图(添加贝赛尔曲线)
- 前言
- 一、箱线图?
- 二、R语言绘制
- 1.R包载入和构建模拟数据
- 2.设置颜色模式
- 3.使用ggpaired函数绘制箱线图
- 4.添加显著性检验
- 5.设置主题
- 6.保存
- 三、完整代码
前言
箱形图又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因型状如箱子而得名。在各种领域也经常被使用,常见于品质管理,快速识别异常值。箱形图最大的优点就是不受异常值的影响,能够准确稳定地描绘出数据的离散分布情况,同时也利于数据的清洗。
一、箱线图?
箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。 用于展示数据的大致分布特征,也用于探索异常值和离群点。平行排列的箱线图可以用于比较在某个分类变量各个类别下某指标的分布。在R语言可以使用函数 ggpubr() 绘制箱线图。
贝塞尔曲线, 又称贝赛尔曲线(Bézier曲线)是电脑图形学中相当重要的参数曲线。更高维度的广泛化贝塞尔曲线就称作贝塞尔曲面,其中贝塞尔三角是一种特殊的实例。
二、R语言绘制
1.R包载入和构建模拟数据
# 载入R包:
library(ggplot2)
library(RColorBrewer)
library(ggpubr)
# 构建模拟数据:
set.seed(2000)
data <- data.frame(BAI2013 = rnorm(60),
class = rep(rep(letters[1:3], each=10),2),
treatment = rep(c("elevated","ambient"),each=30),
index=rep(seq(1,30),2))
head(data)
模拟数据示例:
BAI2013 | class | treatment | index | |
---|---|---|---|---|
1 | 0.9001420 | a | elevated | 1 |
2 | -1.1733458 | a | elevated | 2 |
3 | -0.8974854 | a | elevated | 3 |
4 | -1.4445014 | a | elevated | 4 |
5 | -0.3310136 | a | elevated | 5 |
6 | -2.9006290 | a | elevated | 6 |
2.设置颜色模式
# 设置颜色模式:
palette <- c(brewer.pal(7,"Set2")[c(4,5)])
3.使用ggpaired函数绘制箱线图
# ggpaired是ggpurb包中绘制配对箱线图的函数
ggpaired(data, x = "treatment", y = "BAI2013",
fill = "treatment", # fill指定分组变量:
palette = palette, # 颜色
line.color = "grey50", # 散点连线颜色
line.size = 0.15, # 连线粗细
point.size = 1.5, # 散点大小
width=0.6, # 箱线图宽度
facet.by = "class", # 分面变量
short.panel.labs = FALSE)
4.添加显著性检验
stat_compare_means(paired = TRUE)
5.设置主题
theme_minimal()
theme(strip.background = element_rect(fill="grey90"),
strip.text = element_text(size=13,face="plain",color="black"),
axis.title=element_text(size=13,face="plain",color="black"),
axis.text = element_text(size=11,face="plain",color="black"),
panel.background=element_rect(colour="black",fill=NA),
panel.grid=element_blank(),
legend.position="none",
legend.background=element_rect(colour=NA,fill=NA),
axis.ticks=element_line(colour="black"))
6.保存
ggsave("boxplot_line.pdf", height = 5, width = 8)
三、完整代码
# 载入R包:
library(ggplot2)
library(RColorBrewer)
library(ggpubr)
# 构建模拟数据:
set.seed(2000)
data <- data.frame(BAI2013 = rnorm(60),
class = rep(rep(letters[1:3], each=10),2),
treatment = rep(c("elevated","ambient"),each=30),
index=rep(seq(1,30),2))
head(data)
# 设置颜色模式:
palette <- c(brewer.pal(7,"Set2")[c(4,5)])
###### 使用ggpaired函数 ###########
# ggpaired是ggpurb包中绘制配对箱线图的函数
ggpaired(data, x = "treatment", y = "BAI2013",
fill = "treatment", # fill指定分组变量:
palette = palette, # 颜色
line.color = "grey50", # 散点连线颜色
line.size = 0.15, # 连线粗细
point.size = 1.5, # 散点大小
width=0.6, # 箱线图宽度
facet.by = "class", # 分面变量
short.panel.labs = FALSE)
# 添加显著性检验:
stat_compare_means(paired = TRUE)
# 设置主题:
theme_minimal()
theme(strip.background = element_rect(fill="grey90"),
strip.text = element_text(size=13,face="plain",color="black"),
axis.title=element_text(size=13,face="plain",color="black"),
axis.text = element_text(size=11,face="plain",color="black"),
panel.background=element_rect(colour="black",fill=NA),
panel.grid=element_blank(),
legend.position="none",
legend.background=element_rect(colour=NA,fill=NA),
axis.ticks=element_line(colour="black"))
ggsave("boxplot_line.pdf", height = 5, width = 8)