matplotlib柱状图添两个图例
时间: 2023-10-01 13:03:39 浏览: 72
柱状图样例2
要在 matplotlib 柱状图中添加两个图例,可以使用 `ax.legend()` 函数来实现。以下是一个示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.arange(5)
y1 = np.array([2, 5, 4, 3, 6])
y2 = np.array([1, 3, 2, 4, 5])
labels1 = ['A', 'B', 'C', 'D', 'E']
labels2 = ['F', 'G', 'H', 'I', 'J']
# 绘制柱状图
fig, ax = plt.subplots()
ax.bar(x, y1, label='Group 1')
ax.bar(x, y2, bottom=y1, label='Group 2')
# 设置图例
leg1 = ax.legend(loc='upper left', frameon=True, title='Group 1')
leg2 = ax.legend(loc='upper right', frameon=True, title='Group 2')
ax.add_artist(leg1)
# 设置轴标签和标题
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_title('Two Legends Bar Chart')
plt.show()
```
在此示例中,我们使用 `ax.bar()` 函数绘制了两组柱状图,并使用 `label` 参数为它们分别设置了标签。然后,我们使用 `ax.legend()` 函数分别为每组柱状图创建了一个图例,并使用 `loc` 参数设置了它们的位置。注意,我们需要通过 `ax.add_artist()` 函数将第一个图例添加回轴对象,以便两个图例可以共存。
最后,我们使用 `ax.set_xlabel()` 和 `ax.set_ylabel()` 函数设置 x 和 y 轴标签,使用 `ax.set_title()` 函数设置图表标题。运行此代码将生成一个带有两个图例的柱状图。
阅读全文