plt.bar()
—— 条形图(Bar Chart)
matplotlib.pyplot.bar()
用于绘制条形图,适用于 分类数据的可视化,如销售额、人口统计、实验结果对比。
1. 语法
import matplotlib.pyplot as plt
plt.bar(x, height, width=0.8, color=None, edgecolor=None, label=None, alpha=None)
主要参数
参数 | 作用 |
---|---|
x | X 轴类别(list 或 array ) |
height | 条形高度(数值) |
width | 条形宽度(默认 0.8 ) |
color | 条形颜色 |
edgecolor | 条形边框颜色 |
label | 条形标签(用于 plt.legend() ) |
alpha | 透明度(0-1 ) |
2. 基本示例
2.1 画基本条形图
import matplotlib.pyplot as plt
# 数据
categories = ["A", "B", "C", "D"]
values = [10, 15, 7, 12]
# 绘制条形图
plt.bar(categories, values)
plt.title("Basic Bar Chart")
plt.xlabel("Categories")
plt.ylabel("Values")
plt.show()
📌 作用
plt.bar(x, height)
绘制垂直条形图。
2.2 调整颜色(color
参数)
plt.bar(categories, values, color=["red", "blue", "green", "purple"])
plt.show()
📌 作用
color
设置每个条形的颜色。
2.3 添加边框(edgecolor
)
plt.bar(categories, values, edgecolor="black")
plt.show()
📌 作用
edgecolor="black"
给每个条形添加黑色边框。
2.4 透明度(alpha
参数)
plt.bar(categories, values, color="blue", alpha=0.5)
plt.show()
📌 作用
alpha=0.5
调整透明度(适用于重叠柱状图)。
3. 多组数据
3.1 并排条形图
import numpy as np
# 多组数据
values2 = [12, 10, 9, 14]
x = np.arange(len(categories)) # X 轴索引
plt.bar(x - 0.2, values, width=0.4, label="Group 1")
plt.bar(x + 0.2, values2, width=0.4, label="Group 2")
plt.xticks(x, categories) # 设置 X 轴标签
plt.legend()
plt.show()
📌 作用
x - 0.2
左移第一组数据,x + 0.2
右移第二组数据,避免重叠。
3.2 堆叠条形图
plt.bar(categories, values, label="Group 1")
plt.bar(categories, values2, bottom=values, label="Group 2")
plt.legend()
plt.show()
📌 作用
bottom=values
让第二组数据叠加在第一组数据之上。
4. 横向条形图(plt.barh()
)
plt.barh(categories, values, color="green")
plt.xlabel("Values")
plt.ylabel("Categories")
plt.show()
📌 作用
plt.barh()
绘制横向条形图。
5. plt.bar()
vs plt.hist()
plt.bar() | plt.hist() | |
---|---|---|
作用 | 分类数据 | 连续数据(频率分布) |
X 轴 | 类别 | 数值区间 |
import numpy as np
data = np.random.randn(1000)
plt.hist(data, bins=20, color="blue", alpha=0.7)
plt.show()
📌 推荐
- 类别数据 →
plt.bar()
- 数据分布 →
plt.hist()
6. 总结
✅ plt.bar()
适用于类别数据可视化,支持 颜色、边框、透明度、堆叠条形图。
✅ 常见参数
color
调整颜色,edgecolor="black"
添加边框,alpha=0.5
透明度。plt.barh()
绘制横向条形图。