趋近智
箱线图,也称为箱须图,提供了一种简洁的数据分布可视化概括方式。当需要比较多个分布或仅需快速概览时,这些图表尤为有用。虽然直方图和核密度估计(KDEs)等更详细的可视化方法能展示分布的完整形态,但箱线图提供了一种标准化地展现基于五数概括的数据的方式。
箱线图直观地表示几个基本的描述性统计量:
箱线图提供了一种简洁的方式来把握数据的集中趋势(中位数)、离散程度(IQR),并识别潜在的异常值。
seaborn.boxplot 创建箱线图Seaborn 使用 seaborn.boxplot 函数创建箱线图非常简单直接。它与 Pandas DataFrames 配合得特别好。
我们假设已经载入了常用的 'tips' 数据集:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# 载入示例数据集
tips = sns.load_dataset("tips")
# 显示前几行数据
print(tips.head())
绘制单个分布
要绘制单个数值变量(例如 total_bill)的分布,您可以直接传入 DataFrame 列:
# 为 'total_bill' 列创建箱线图
plt.figure(figsize=(6, 4)) # 可选:调整图表大小
sns.boxplot(y=tips["total_bill"]) # 使用 y 轴绘制垂直箱线图
plt.title("总账单金额分布")
plt.ylabel("总账单金额 ($)")
plt.show()
这段代码生成一个垂直箱线图,展示数据集中所有总账单金额的中位数、四分位数、触须和异常值。
比较不同类别之间的分布
箱线图的一个重要优点是能够比较不同组之间的分布。您通常通过为一个轴(x 或 y)指定类别变量,为另一个轴指定数值变量来实现这一点。
我们来比较一周中每天的 total_bill 分布:
# 创建箱线图,比较不同 'day' 值下的 'total_bill'
plt.figure(figsize=(8, 5)) # 可选:调整图表大小
sns.boxplot(x="day", y="total_bill", data=tips, palette="blue") # x 轴用于类别,y 轴用于数值
plt.title("按日期划分的总账单金额分布")
plt.xlabel("星期")
plt.ylabel("总账单金额 ($)")
plt.show()
这里,x="day" 指示 Seaborn 为 'day' 列中的每个独特值创建单独的箱线图,使用 y="total_bill" 指定的相应 total_bill 值。data=tips 参数提供 DataFrame。我们还使用了 palette 参数来应用预设的颜色方案。
您可以使用 hue 参数进一步细分数据,在每个主要类别内进行嵌套比较(例如,比较每天的吸烟者和非吸烟者)。
# 创建嵌套箱线图,比较按 'day' 和 'smoker' 状态划分的 'total_bill'
plt.figure(figsize=(10, 6))
sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips, palette="pastel")
plt.title("按日期和吸烟者状态划分的总账单金额分布")
plt.xlabel("星期")
plt.ylabel("总账单金额 ($)")
plt.legend(title="吸烟者") # 添加图例标题
plt.show()
在查看单个箱线图或比较多个箱线图时:
一个箱线图示例,展示了中位数(中心线)、箱体(Q1到Q3)、触须(延伸至1.5*IQR)和一个异常值点。
当您希望时,箱线图特别有效:
与直方图或KDE图相比,它们在分布的具体形态方面提供的细节较少(例如,您无法从标准箱线图轻易看出分布是否呈双峰)。接下来讨论的小提琴图尝试结合箱线图的概括性特征和KDE图的形态信息。
总之,seaborn.boxplot 提供了一种强大且简洁的方法,用于可视化汇总统计量和比较分布,使其成为您数据检查工具集中的一个重要工具。
这部分内容有帮助吗?
seaborn.boxplot - seaborn 0.13.2 documentation, Michael Waskom and Seaborn Developers, 2024 - 提供Seaborn创建箱线图的官方API参考和示例,包含详细参数说明。© 2026 ApX Machine Learning用心打造