python 分组柱状图
时间: 2025-05-12 22:31:13 浏览: 22
### 使用 Matplotlib 和 Seaborn 绘制分组柱状图
以下是通过 `Matplotlib` 和 `Seaborn` 库绘制分组柱状图的一个完整示例。分组柱状图用于比较多个类别之间的不同子类别的数值。
#### 示例代码
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 设置字体大小和其他样式参数
sns.set_context("notebook", rc={"font.size": 12, "axes.titlesize": 14, "axes.labelsize": 12})
# 创建虚拟数据集
data = {
'Group': ['A', 'B', 'C'],
'Category1': [30, 35, 27],
'Category2': [35, 40, 30]
}
df = pd.DataFrame(data)
# 计算条形的位置
bar_width = 0.35
index = np.arange(len(df['Group']))
# 绘制分组柱状图
plt.figure(figsize=(8, 6))
bars1 = plt.bar(index, df['Category1'], bar_width, label='Category 1')
bars2 = plt.bar(index + bar_width, df['Category2'], bar_width, label='Category 2')
# 添加标签和标题
plt.xlabel('Groups', fontsize=12)
plt.ylabel('Values', fontsize=12)
plt.title('Grouped Bar Chart Example', fontsize=14)
plt.xticks(index + bar_width / 2, df['Group'])
plt.legend()
# 显示图形
plt.tight_layout()
plt.show()
```
上述代码实现了以下功能:
- 利用 Pandas 构建了一个简单的 DataFrame 来存储分组数据[^1]。
- 使用 NumPy 的 `arange` 函数定义了条形位置,并设置了条形宽度以便于区分不同的分类。
- 调用了 Matplotlib 的 `bar` 方法分别绘制两个分类的数据列,形成分组图表。
- 借助 Seaborn 的 `set_context` 方法调整整体绘图风格以及字体大小[^2]。
此代码片段展示了如何利用 Matplotlib 和 Seaborn 结合的方式制作清晰直观的分组柱状图。
---
阅读全文
相关推荐


















