sns.barplot()
—— 条形图(Bar Plot)
seaborn.barplot()
用于可视化类别数据的均值及其置信区间,适用于 分类变量与数值变量的关系,并可显示 误差范围(默认95% 置信区间)。
1. 语法
import seaborn as sns
sns.barplot(data=None, x=None, y=None, hue=None, estimator=None, ci=95, palette=None, orient=None)
主要参数
参数 | 作用 |
---|---|
data | DataFrame 数据集 |
x | 分类变量 |
y | 数值变量 |
hue | 按子类别分组(不同颜色) |
estimator | 聚合统计函数(默认 mean ) |
ci | 误差范围(默认 95% 置信区间,可设为 None 关闭) |
palette | 颜色方案(如 "Blues" 、"pastel" ) |
orient | 'v' 竖向(默认) 或 'h' 横向 |
2. 基本示例
2.1 计算均值(默认)
import seaborn as sns
import matplotlib.pyplot as plt
# 加载数据
data = sns.load_dataset("titanic")
# 绘制条形图
sns.barplot(data=data, x="class", y="fare")
plt.title("Average Fare by Class")
plt.show()
📌 说明
x="class"
→ 分类变量(头等舱/二等舱/三等舱)。y="fare"
→ 计算票价的平均值(默认estimator=mean
)。- 误差线表示 95% 置信区间。
2.2 关闭置信区间
sns.barplot(data=data, x="class", y="fare", ci=None)
plt.show()
📌 ci=None
取消误差范围(仅显示均值)。
2.3 按类别显示(hue
参数)
sns.barplot(data=data, x="class", y="fare", hue="sex")
plt.show()
📌 作用
hue="sex"
→ 不同性别用不同颜色表示。
2.4 计算中位数(estimator
参数)
import numpy as np
sns.barplot(data=data, x="class", y="fare", estimator=np.median)
plt.show()
📌 作用
estimator=np.median
→ 计算票价的中位数。
3. 调整美观
3.1 横向条形图(orient="h"
)
sns.barplot(data=data, x="fare", y="class", orient="h")
plt.show()
📌 作用
orient="h"
→ 横向条形图(适用于类别较长时)。
3.2 设置颜色(palette
)
sns.barplot(data=data, x="class", y="fare", hue="sex", palette="pastel")
plt.show()
📌 常见调色板
"pastel"
、"Blues"
、"coolwarm"
、"magma"
。
4. sns.barplot()
vs sns.countplot()
sns.barplot() | sns.countplot() | |
---|---|---|
作用 | 计算数值均值(默认) | 统计类别个数 |
适用数据 | 分类变量 + 数值变量 | 仅分类变量 |
是否可计算 mean/median | ✅ 支持 | ❌ 不支持 |
5. 总结
✅ sns.barplot()
适用于计算类别数据的均值,并可显示误差范围。
✅ 常见参数
hue
按类别分色,palette
控制颜色,estimator=np.median
计算中位数。orient="h"
横向条形图,ci=None
关闭置信区间。