我正在尝试绘制条形图和折线图,其中我的数据以日期时间为索引。 这是代码:
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
问候
答案 0 :(得分:2)
在@ImportanceOfBeingErnest后面的评论中,我认为回答此问题的最佳方法是使用use_index=False
kwarg。
对于数据格式等,这是另一个问题,取决于要实现的目标。
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, use_index=False)
答案 1 :(得分:-2)
您可以这样做:
fig = plt.figure()
ax = df.plot.bar()
ax2 = ax.twinx()
ax2.plot(df.sum(axis=1).values)
plt.show()
df.plot.bar返回可用于下一个绘图的轴:
也讨论过:
How to align the bar and line in matplotlib two y-axes chart?