matplotlib以时间为轴绘制堆叠柱状图
时间: 2023-10-20 19:23:58 浏览: 56
可以使用matplotlib中的bar函数绘制堆叠柱状图,并利用日期时间模块将时间数据转换为可视化的形式。
下面是一个简单的示例代码:
```python
import matplotlib.pyplot as plt
import datetime
# 创建数据
x = [datetime.date(2022, 1, 1),
datetime.date(2022, 2, 1),
datetime.date(2022, 3, 1),
datetime.date(2022, 4, 1)]
y1 = [10, 20, 30, 40]
y2 = [20, 30, 40, 50]
y3 = [5, 15, 25, 35]
# 转换日期时间格式
x = [x[i].strftime("%Y-%m-%d") for i in range(len(x))]
# 绘制堆叠柱状图
plt.bar(x, y1, label='y1')
plt.bar(x, y2, bottom=y1, label='y2')
plt.bar(x, y3, bottom=[y1[j] + y2[j] for j in range(len(y1))], label='y3')
plt.legend()
plt.show()
```
在本例中,我们使用datetime.date创建时间数据。在转换为可视化的形式时,我们使用strftime函数将日期格式化为“年-月-日”的形式。
然后,我们使用bar函数绘制堆叠柱状图。bottom参数使得不同的柱状图可以堆叠在一起,同时label参数用于添加图例。最后,我们使用legend函数显示图例并调用show方法显示图像。