双分组小提琴图

作者

[编辑] 郑虎;

[审核] .

注记

Hiplot 网站

本页面为 Hiplot Violin Group 插件的源码版本教程,您也可以使用 Hiplot 网站实现无代码绘图,更多信息请查看以下链接:

https://hiplot.cn/basic/violin-group?lang=zh_cn

T检验分组数据的小提琴图和盒图。

环境配置

  • 系统: Cross-platform (Linux/MacOS/Windows)

  • 编程语言: R

  • 依赖包: ggpubr; ggthemes

# 安装包
if (!requireNamespace("ggpubr", quietly = TRUE)) {
  install.packages("ggpubr")
}
if (!requireNamespace("ggthemes", quietly = TRUE)) {
  install.packages("ggthemes")
}

# 加载包
library(ggpubr)
library(ggthemes)

数据准备

  • <1st col>:(数字)值数据
  • <2nd col>:(String)第1列组
  • <3rd col>:(字符串)第2列组
# 加载数据
data <- read.delim("files/Hiplot/180-violin-group-data.txt", header = T)

# 整理数据格式
data[, 3] <- factor(data[, 3], levels = unique(data[, 3]))

# 查看数据
head(data)
  Value Group1 Group2
1   4.2    low treat1
2  11.5    low treat1
3   7.3    low treat1
4   5.8    low treat1
5   6.4    low treat1
6  10.0    low treat1

可视化

# 双分组小提琴图
p <- ggviolin(data, x = "Group1", y = "Value", color = "Group2", add = "dotplot",
              add.params = list(fill = "white",size = 1), title = "Violin Diagram",
              xlab = "Group1", ylab = "Value", fill = "Group2",
              palette = c("#374E55FF", "#DF8F44FF"), alpha = 0.5, trim = F) +
  stat_compare_means(aes(group = data[, colnames(data)[3]]),
    method = "t.test", vjust = -6, label.x.npc = "left", label.y.npc = "top",
    tip.length = 0.03, bracket.size = 0.3, step.increase = 0, position = "identity",
    na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, geom = "text") +
  theme_stata() +
  theme(text = element_text(family = "Arial"),
        plot.title = element_text(size = 12,hjust = 0.5),
        axis.title = element_text(size = 12),
        axis.text = element_text(size = 10),
        axis.text.x = element_text(angle = 0, hjust = 0.5,vjust = 1),
        legend.position = "right",
        legend.direction = "vertical",
        legend.title = element_text(size = 10),
        legend.text = element_text(size = 10))

p
图 1: 双分组小提琴图