箱线图(Boxplot),也称盒须图,是一种用于描述数据分布特征的统计图表。它通过五个关键统计量——最小值、第一四分位数(Q1)、中位数(Median)、第三四分位数(Q3)和最大值,直观展示数据的集中趋势、离散程度和异常值。箱线图由一个箱体和两条延伸线(称为“须”)组成,箱体表示数据中间50%的范围(即四分位距,IQR = Q3 - Q1),中位数线反映数据的中心位置,而须线则延伸至正常值范围的边界,超出该边界的点被视为异常值。
展示数据分布:通过箱体高度和须线长度,快速判断数据的离散程度、对称性和偏态情况。
识别异常值:明确标出偏离主体数据的异常点,便于后续数据清洗或重点分析。
多组数据比较:可同时绘制多组数据的箱线图,直观对比不同组别在中位数、离散程度和异常值上的差异,这在基因表达分析、实验组对照等场景中尤为有用。
非参数检验辅助:为后续选择合适的统计检验方法(如t检验或Mann-Whitney U检验)提供视觉依据。
以基因表达数据为例,假设我们有三个样本组(对照组、处理组A、处理组B),每组包含10个样本中某基因的表达量(单位:TPM):
对照组:[12.3, 11.8, 13.1, 10.9, 12.7, 11.5, 13.5, 12.0, 11.9, 12.4]
处理组A:[18.2, 17.9, 20.1, 16.8, 19.3, 18.7, 17.5, 19.8, 18.0, 17.2]
处理组B:[25.6, 24.8, 26.1, 23.9, 27.3, 25.0, 24.5, 26.8, 25.7, 24.9]
绘制箱线图主要依赖以下库:
pip install matplotlib seaborn pandas numpy
import seaborn as snsimport matplotlib.pyplot as pltimport pandas as pdimport numpy as np# 构造示例数据data = { 'Expression': [12.3, 11.8, 13.1, 10.9, 12.7, 11.5, 13.5, 12.0, 11.9, 12.4, 18.2, 17.9, 20.1, 16.8, 19.3, 18.7, 17.5, 19.8, 18.0, 17.2, 25.6, 24.8, 26.1, 23.9, 27.3, 25.0, 24.5, 26.8, 25.7, 24.9], 'Group': ['Control'] * 10 + ['Treatment A'] * 10 + ['Treatment B'] * 10}df = pd.DataFrame(data)# 绘制箱线图plt.figure(figsize=(8, 6))sns.boxplot(x='Group', y='Expression', data=df, hue='Group', palette="Set2", legend=False)plt.title('Gene Expression Across Groups')plt.xlabel('Group')plt.ylabel('Expression (TPM)')plt.show()
plt.figure(figsize=(8, 6))
sns.boxplot(x='Group', y='Expression', data=df, hue='Group', palette="Set2", legend=False)
调用箱线图函数。以 df 为数据源,横轴为 Group,纵轴为 Expression。通过 hue 参数按组别着色,使用 Set2 颜色盘,并强制关闭图例。plt.title('Gene Expression Across Groups')
设置图表标题为“Gene Expression Across Groups”。plt.ylabel('Expression (TPM)')
设置纵坐标轴标签为“Expression (TPM)”。箱线图是生物信息学分析中不可或缺的可视化工具,尤其适合展示基因表达、测序深度等连续型数据的分布特征。通过Python的Seaborn和Matplotlib库,可以轻松绘制出专业、清晰的箱线图,帮助研究者快速发现数据中的模式、差异和异常,为后续的生物学解释提供有力支持。掌握其绘制方法和参数调整,将极大提升数据分析的效率和表达力。