
在科研论文中,我们经常需要比较不同实验组之间某个连续变量的差异。例如,对照组与治疗组的血压、不同处理条件下的基因表达量、不同药物剂量下的细胞活力,或者不同疾病亚型患者的某项生化指标。
传统柱状图通常只展示均值和误差,虽然简洁,却可能掩盖大量个体信息。箱线图(Box Plot)和小提琴图(Violin Plot)可以进一步展示数据分布,但在样本量较小或中等时,研究者往往希望同时看到每一个真实观测值。
这正是蜂群图(Swarm Plot)的优势所在。
蜂群图可以理解为一种经过“防重叠排列”的散点图。每一个点代表一个真实观测值,纵轴通常表示连续变量,而横轴表示不同的分类组别。与普通散点图不同的是,当多个观测值非常接近时,蜂群图会自动将点在水平方向进行有限偏移,使它们尽可能避免重叠,因此形成类似“蜂群”的视觉效果。
在科研数据可视化中,蜂群图特别适合样本量较小或中等、希望展示全部原始数据、同时又需要比较不同组别分布的研究场景。
需要强调的是,蜂群图本身不是一种统计检验方法。它负责展示数据,至于组间差异是否具有统计学意义,则需要结合t检验、Mann–Whitney U检验、ANOVA、Kruskal–Wallis检验或其他合适的方法进行判断。
蜂群图的历史
蜂群图是从散点图以及一维数据点图发展而来的数据可视化形式。其基本思想并不复杂:当多个数据点具有相同或相近的数值时,如果全部放在同一个横坐标位置,就会发生严重的点重叠;如果人为地将点稍微错开,则可以在不改变纵向数值的情况下展示更多数据。

图源:https://www.geeksforgeeks.org/
随着统计软件和数据可视化工具的发展,这种思想逐渐形成了更成熟的算法。现代蜂群图通常不是简单地随机抖动,而是根据点之间的距离进行排列,使数据点尽量避免相互覆盖,同时保持整体结构紧凑。
近年来,蜂群图在医学、生命科学、药理学和实验生物学论文中的使用越来越常见。特别是在样本量不大的实验研究中,直接展示每个样本的原始数据已经成为一种越来越受到重视的数据透明化方式。
这也是蜂群图与传统柱状图之间的重要区别:柱状图可能只告诉读者“这一组平均值是多少”,而蜂群图则允许读者直接观察“这一组的每一个样本分别是多少”。
蜂群图的主要类型
最基本的蜂群图用于比较多个分类组之间的连续变量。例如横轴设置为Control、Treatment A和Treatment B,纵轴为细胞活力,每个点代表一个独立样本。
实际科研绘图中,蜂群图经常与箱线图结合。此时箱线图负责展示中位数、四分位数和数据范围,蜂群图则负责展示每个原始观测值。二者结合后,可以同时看到总体分布和个体数据。
另一种常见形式是蜂群图与小提琴图结合。小提琴图强调数据的密度分布,蜂群图展示实际观测值。当样本量较大时,这种组合能够同时提供总体分布和原始数据两个层面的信息。
如果不同组别还需要进一步区分亚组,可以通过颜色或点形状表示。例如在比较不同治疗方案时,可以使用颜色区分男性和女性,或者区分不同疾病亚型。
不过,蜂群图并不是“信息越多越好”。如果同时加入大量颜色、形状、箱线图、均值线和统计显著性标记,很容易使图形变得复杂。因此,实际论文中应围绕一个核心问题进行视觉设计。
蜂群图的适用条件
蜂群图最适合用于分类变量+连续变量的数据结构。
例如:
- 不同治疗组的血压;
- 不同实验条件下的基因表达量;
- 不同药物处理组的细胞活力;
- 不同疾病分期患者的炎症指标;
- 不同基因型个体的某项表型。
蜂群图尤其适合样本量较小或中等的研究。当每组只有10~100个左右的观测值时,展示所有数据点通常具有很高的信息价值。
此外,研究者应确保每个点具有明确的数据含义。最理想的情况是,一个点对应一个独立实验单位,例如一个患者、一个动物、一个独立生物学重复(biological replicate)或一个独立样本。
这里需要特别强调**生物学重复与技术重复(technical replicate)**的问题。如果同一个样本进行了3次技术测量,不能简单地把这3个测量值当成3个独立研究对象放入蜂群图并进行统计检验,否则可能产生伪重复(pseudoreplication)。
如果研究数据是明显的重复测量数据,例如同一个患者在治疗前、治疗后1个月和3个月分别测量一次,那么普通蜂群图也不是最理想的主要图形。此时可以考虑配对散点图、个体轨迹图或重复测量数据可视化方法。
常见替代方法
蜂群图最常见的替代方法包括箱线图、小提琴图、抖动散点图和点图。
- 箱线图(Box Plot)适合快速比较多个组的数据分布,能够展示中位数、四分位距以及潜在离群值。当样本量较大时,箱线图通常比蜂群图更加简洁。
- 小提琴图(Violin Plot)在箱线图的基础上进一步展示数据密度。当每组样本量较大、数据分布结构比较复杂时,小提琴图通常更加有优势。但需要注意,小提琴图的密度形状来自统计估计,并不意味着图中的每一个形状都直接对应真实观测。
- 抖动散点图(Jitter Plot)也是常见替代方法。它通过在横轴方向加入少量随机或规则扰动,减少数据点重叠。与蜂群图相比,抖动图实现简单,但由于点的位置包含人为扰动,因此不能把横向位置解释为真实数据。
如果研究者只需要展示每组的均值和置信区间,可以采用点图(dot plot)或均值-置信区间图。
因此,如果研究重点是“展示每一个真实数据点”,蜂群图通常是很好的选择;如果重点是“展示整体分布”,箱线图或小提琴图可能更加合适。
蜂群图的详细操作步骤
蜂群图的制作关键在于:数据整理正确、分组明确、每个点代表一个独立观测,并且点的排列不会改变原始数据含义。
下面以“不同治疗组患者某项生化指标”为例,介绍完整的科研绘图流程。
第一步:明确研究变量
首先确定分类变量和连续变量。
例如:
- X轴:治疗组,包括Control、Treatment A、Treatment B;
- Y轴:血清某项生化指标,单位为mg/dL;
- 每一个点:一名独立患者。
确定变量后,还需要明确统计分析目标。如果研究者只是展示数据,蜂群图本身已经可以完成任务;如果还要比较组间差异,则需要提前确定对应的统计检验。
第二步:整理原始数据
建议将数据整理成“长格式(long format)”。
例如:

其中:
Subject代表研究对象;
Group代表分类组;
Value代表需要展示的连续变量。
这种结构非常适合R、Python以及大多数现代数据可视化工具。
第三步:检查独立性和重复测量
正式绘图之前,必须确认每一个点到底代表什么。
如果S01、S02、S03分别代表3名独立患者,那么可以直接绘制。
但如果S01实际上代表同一个患者的3次技术重复,则不能简单地将这3个值作为3个独立点进行组间推断。
如果存在重复测量,建议在数据表中增加时间变量,例如:

这种数据应采用适合重复测量结构的图形和统计模型,而不是简单地把所有数据点混在一个蜂群图中。
第四步:检查缺失值和异常值
检查每个组是否存在缺失数据,并确认异常值是否来自真实观测。
蜂群图的一个重要优势就是能够直接显示极端观测,因此不要为了让图形更加整齐而删除离群点。
如果某个数据点因为实验失败、仪器故障等原因不属于有效观测,则应依据预先定义的排除标准处理,而不是因为它“看起来不好看”而删除。
第五步:确定Y轴范围和单位
Y轴应使用实际测量变量,并明确单位。
例如:
Serum glucose (mmol/L)
而不是简单写成:
Value
如果存在明显的极端值,也不要随意截断Y轴。科研图形应尽量完整展示数据范围。
第六步:绘制基础蜂群图
在GraphPad Prism中,可以先将不同组的数据分别输入Column数据表,然后选择适合展示单个数据点的图形类型,再通过图形设置将数据点进行分散排列。
在R中,可以使用ggplot2配合相关扩展包实现蜂群排列;在Python中,可以使用Seaborn等工具进行类似的数据点分布展示。
无论使用哪一种软件,核心逻辑都是一致的:
分类变量 → 横轴;连续变量 → 纵轴;每个观测值 → 一个点;算法自动调整点的横向位置以减少重叠。
需要注意的是,蜂群图中的横向偏移主要是为了防止点重叠,因此不要将横向位置解释成额外的连续变量。
第七步:调整点的大小和透明度
点太大,会导致相邻数据点难以区分;点太小,则可能影响阅读。
因此应根据样本量和图形尺寸调整点大小。
如果数据量较大,可以适当减小点大小;如果数据量较小,则可以使用稍大的点,使每个观测值更加清晰。
通常不需要加入复杂的阴影或三维效果。科研绘图应尽量保持简洁。
第八步:根据需要添加箱线图或小提琴图
如果希望同时展示数据的统计分布,可以在蜂群图基础上添加箱线图。
例如:
小提琴图 + 蜂群图
可以同时展示数据密度和实际观测值。
或者:
箱线图 + 蜂群图
可以同时展示中位数、四分位距和每个原始数据点。
不过需要注意图层顺序。如果箱线图完全覆盖了数据点,蜂群图的优势就会被削弱,因此应确保原始数据点始终具有足够的可见性。
第九步:添加均值、误差线或统计结果
如果研究需要展示均值,可以在蜂群图上增加均值标记。
如果需要表示不确定性,可以添加95% CI等信息。
但要避免同时添加太多统计元素。例如,如果图中已经有箱线图,再额外添加均值±SEM和中位数标记,可能让读者无法快速判断每个元素代表什么。
对于组间比较,可以根据统计分析结果添加P值或显著性标记。
需要强调的是,P值应该来自正式统计检验,而不能通过观察蜂群图中两组点的位置直接判断。
第十步:统一图形格式
完成统计元素后,最后统一字体、字号、坐标轴、图例和边距。
检查X轴组别名称是否完整,Y轴单位是否清晰,点是否发生严重重叠,图例是否必要,以及图形缩小后是否仍然能够辨认。
如果准备投稿,还需要根据目标期刊的图形规范设置尺寸和导出格式。
蜂群图的优势与局限
蜂群图最大的优势是透明地展示原始数据。
传统柱状图可能只展示均值±SEM,而蜂群图可以让读者直接看到每一个观察值。对于样本量较小的实验,这一点尤其重要,因为读者可以判断数据究竟是集中在某个范围,还是由少数极端值推动了平均值变化。
第二个优势是它可以减少点重叠。与普通散点图相比,蜂群算法能够自动安排数据点的位置,因此即使多个样本的测量值非常接近,也可以尽可能清楚地展示出来。
第三个优势是它非常适合与箱线图和小提琴图结合,可以同时呈现原始数据、统计分布和组间比较。
但蜂群图也有局限。首先,当样本量非常大时,点的数量会使图形变得拥挤。其次,蜂群图的横向位置通常经过算法调整,因此不能被理解为真实的第二个数值维度。
此外,如果每组只有极少数数据点,蜂群图虽然可以展示所有数据,但统计推断仍然可能受到较低统计功效的影响。
还有一点经常被忽略:展示所有数据并不意味着统计分析就一定正确。 如果数据存在重复测量、聚类结构或伪重复问题,仅仅把所有观测值画出来并不能解决独立性问题。
因此,蜂群图应该被视为数据可视化工具,而不是统计分析方法。
最后
蜂群图的核心价值在于:让科研论文中的每一个数据点都尽可能“被看见”。
对于样本量较小或中等的实验研究,与其只展示一个平均值,不如在合适的情况下直接展示原始数据。蜂群图通过智能排列数据点,在减少重叠的同时保留了每个观测值的信息,因此特别适合医学、生命科学、药理学等研究领域。
但蜂群图并不是所有数据都适用。面对大量数据、重复测量数据或复杂层级数据时,需要根据研究问题选择小提琴图、箱线图、个体轨迹图等替代方法。
更重要的是,“展示原始数据”只是科研透明性的第一步,而不是统计分析的终点。 一张优秀的蜂群图应该与合理的研究设计、正确的统计模型以及清晰的结果报告结合起来,帮助读者真正理解数据,而不仅仅是让论文看起来更加“专业”。
