趋近智
直方图能为我们提供频率分布的详细视图,而箱线图(也称为箱须图)则能简洁概括数值变量的分布情况,侧重于其集中趋势、离散程度和潜在异常值。它们在快速比较不同类别间的分布时特别有效,尽管此处我们将侧重于单变量情况,并基于之前讨论的集中趋势和离散程度的原则。
箱线图展现了以下重要统计量:
箱线图非常适合快速了解以下内容:
Seaborn 提供了一个简单的函数 sns.boxplot() 来创建信息丰富的箱线图。它与 Pandas DataFrames 很好地集成。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# 示例 DataFrame(假设您已加载了一个,例如 'df')
# 让我们创建一些示例数据进行演示
np.random.seed(42)
data = {
'Age': np.random.normal(loc=40, scale=10, size=150).astype(int),
'Salary': np.random.lognormal(mean=np.log(50000), sigma=0.4, size=150)
}
# 引入一些异常值
data['Salary'][10] = 180000
data['Salary'][50] = 195000
data['Age'][20] = 85
df = pd.DataFrame(data)
df['Age'] = df['Age'].clip(18, 85) # 确保年龄合理
# 为 'Salary' 列创建箱线图
plt.figure(figsize=(6, 4)) # 控制图表大小
sns.boxplot(y=df['Salary'], color='#74c0fc') # 使用调色板中的蓝色
plt.title('薪资分布')
plt.ylabel('薪资')
plt.grid(axis='y', linestyle='--', alpha=0.7) # 添加水平网格线
plt.show()
# 为 'Age' 列创建箱线图
plt.figure(figsize=(6, 4))
sns.boxplot(y=df['Age'], color='#69db7c') # 使用绿色
plt.title('年龄分布')
plt.ylabel('年龄')
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()
执行此代码将生成 'Salary' 和 'Age' 列的箱线图。

观察 'Salary' 列生成的图表:
类似地,分析 'Age' 图表以理解其分布、中位数、离散程度和任何潜在异常值。
这里是使用 Plotly 呈现 'Salary' 数据的示例:
箱线图概括了薪资分布,突出显示了中位数、IQR(箱体)、典型范围(须线)和潜在异常值(单个点)。
箱线图提供了一种紧凑而有效的方式来掌握数值变量分布的基本特征,是单变量分析工具集中必不可少的一部分。它们基于IQR规则视觉上标记潜在异常值,补充了接下来讨论的统计方法。
这部分内容有帮助吗?
seaborn.boxplot - seaborn 0.13.2 documentation, Michael Waskom and the Seaborn team, 2024 - Seaborn boxplot函数的官方文档,提供了使用Python进行绘图的示例和详细参数说明。© 2026 ApX Machine Learning用心打造