【发布时间】:2019-06-25 23:31:53
【问题描述】:
我正在尝试绘制条形图和线叠加图,其中我的数据将日期时间作为索引。 这是代码:
import pandas as pd
import numpy as np
dates = pd.date_range('2019-01-01', '2019-01-31', freq='B')
df = pd.DataFrame(index=dates,
columns=['a', 'b', 'c'],
data = np.random.randn(len(dates), 3))
fig, ax = plt.subplots()
df.plot.bar(ax=ax)
df.sum(axis=1).plot(ax=ax)
我正在使用
python 3.6.8
pandas 0.24.0
matplotlib 3.0.2
问候
【问题讨论】:
-
你用在笔记本上吗?
-
对我来说,它只显示 matplotlib 2.2.2 上的第一张图(条形图)
-
根据评论here 它与索引有关。如果我在两个绘图命令中都设置了
use_index=False,那么条形图和线形图都是可见的,但是 xticks 只是从 0 到 22 的数字。 -
Pandas 条形图本质上是分类的,它们将条形图作为连续的整数位置。因此,要在同一轴上绘制线图,线图也需要是分类的。这可以通过上面评论的
use_index=False来实现。所以解决办法就是把最后一行换成df.sum(axis=1).plot(ax=ax, use_index=False)。 -
我相信处理这个问题的最熊猫式的方法是使用
use_index=False的@ImportanceOfBeingErnest 提示
标签: python python-3.x pandas matplotlib