# 代码来源:https://www.r2omics.cn/
# 加载R包,没有安装请先安装 install.packages("包名")
library(tidyverse)
# 读取箱线图数据文件
= read.delim("https://www.r2omics.cn/res/demodata/boxplot.txt",# 将此处换成你自己电脑里的文件
df header = T # 指定第一行是列名
)
# 把数据转换成ggplot常用的类型(长数据)
= df %>%
df pivot_longer(-1,names_to = "Sample",values_to = "Value")
# 绘图
= ggplot(df,aes(x=Sample,y=Value,fill=Sample))+
p # stat_boxplot(geom = "errorbar", # 添加误差线
# width=0.3)+
geom_violin(alpha = 1, # 透明度
trim = T, # 是否修剪尾巴,即将数据控制到真实的数据范围内
scale = "count", # 如果“area”(默认),所有小提琴都有相同的面积(在修剪尾巴之前)。如果是“count”,区域与观测的数量成比例。如果是“width”,所有的小提琴都有相同的最大宽度。
+
)theme_bw()+ # 主题
theme(
axis.text.x = element_text(angle = 90,
vjust = 0.5
# x轴刻度改为倾斜90度,防止名称重叠
)
) p
R语言绘制小提琴图
什么是小提琴图?
小提琴图是箱线图的变种,展示了任意位置的密度,通过小提琴图可以知道哪些位置的密度较高。
外部形状即为核密度估计(在概率论中用于估计数据点的概率密度函数,属于非参数检验方式之一。
绘图前的数据准备
demo数据可以在https://www.r2omics.cn/res/demodata/boxplot.txt下载。
包含2个维度的数据,在组学数据中通常每一列是个样本,每一行是个基因。
注意受到数据中极大值的影响,数据范围可能会被压的很扁,可以做log转换或其他归一化方式。
R语言绘制小提琴图
绘图
箱线图和小提琴图合并
# 其实就是在小提琴的图层下再画一个箱线图
+
p geom_boxplot(width=0.16,
fill="white",
outlier.alpha = 0
)
添加显著性标签
library(ggsignif) # 用于添加显著性标签
+ geom_signif( # 添加显著性标签
p comparisons=list(c("Sample1","Sample2"),c("Sample3","Sample4")), # 选择你想在哪组上添加标签
step_increase = 0.1,
test="t.test", # "t 检验,比较两组(参数)" = "t.test","Wilcoxon 符号秩检验,比较两组(非参数)" = "wilcox.test"
test.args = list("var.equal" = T), # 等方差
map_signif_level=F # 标签样式F为数字,T为*号
)