大数跨境
0
0

审稿人:小提琴图是怎样超越箱线图,越来越流行的?

审稿人:小提琴图是怎样超越箱线图,越来越流行的? 科研代码
2025-12-01
0
导读:人人都爱小提琴图?

1 前言

最近在帮助大家做数据分析时,我发现一个很一致的现象:越来越多人偏爱小提琴图。大家觉得小提琴图更“现代”、更“高级”,好像比箱线图更像大刊图形。 但其实,很多人并不清楚二者有什么差别。更多时候是“别人用,所以我也用”。

今天的更新,我来尝试把两者的核心区别讲清楚,顺便分享几种常用的小提琴图 R 代码,格式和配色尽量贴近SCI风格,方便你直接放入论文或报告。


2 小提琴图 vs 箱线图的区别

箱线图不展示分布形状。

这句话其实已经概括了最本质的不同。

2.1 箱线图能做什么?

它给你的是“统计摘要”:

  • 中位数(median)
  • 四分位数(Q1–Q3)
  • 最小 / 最大值
  • 离群点

但箱线图不知道数据是什么形状。 它看不出你的数据到底是:

  • 单峰
  • 双峰
  • 长尾
  • 偏态
  • 有两个亚群

这些结构,箱线图完全表达不了


2.2 小提琴图能做什么?

小提琴图基于核密度估计(KDE),它展示的是形状

  • 是不是双峰
  • 分布尾巴长不长
  • 是对称还是偏斜
  • 数据密集区在哪里

也就是说,小提琴图专门解决的,就是箱线图看不见的那部分信息。


3 演示代码:三种常用且好看的小提琴图

下面的代码都基于 iris 数据集,你可以直接复制运行。

3.1 基础版小提琴图

特点:简单、干净,用来快速看分布形状。

library(ggplot2)
data(iris)

p1 <- ggplot(iris, aes(x = Species, y = Sepal.Length)) +
  geom_violin(fill = "grey80", color = "black", linewidth = 0.5, trim = FALSE) +
  theme_classic(base_size = 12) +
  labs(title = "Basic violin plot",
       x = "",
       y = "Sepal length (cm)")
p1

3.2 SCI风格:小提琴 + 箱线图 + 散点

这是目前最推荐的科研绘图方式,信息完整又不花。

nature_cols <- c("#4C72B0""#55A868""#C44E52")

p2 <- ggplot(iris, aes(x = Species, y = Sepal.Length, fill = Species)) +
  geom_violin(color = "black", linewidth = 0.4, trim = FALSE) +
  geom_boxplot(width = 0.18, fill = "white",
               outlier.shape = NA, color = "black", linewidth = 0.4) +
  geom_jitter(width = 0.1, alpha = 0.5, size = 1, color = "black") +
  scale_fill_manual(values = nature_cols) +
  theme_classic(base_size = 12) +
  theme(legend.position = "none",
        panel.border = element_rect(color = "black", fill = NA, linewidth = 0.5)) +
  labs(title = "Violin + boxplot + points",
       x = "", y = "Sepal length (cm)")
p2

4 小结

小提琴图展示的是数据的密度结构,因此在样本量足够时能提供更多细节。但完全可以和箱线图一起绘制,进而更高密度地展示数据结果。本文提供的两种种小提琴图代码,可直接用于论文或者是Poster,欢迎大家结合自己的数据练习!

欢迎关注,一起进步!

【声明】内容源于网络
0
0
科研代码
专注AI,R语言和Python的实用代码!
内容 505
粉丝 0
科研代码 专注AI,R语言和Python的实用代码!
总阅读163
粉丝0
内容505