当通过索引获得数据时,在x轴上绘制日期

时间:2017-10-10 23:54:11

标签: python matplotlib plot

如何在保持使用索引作为数据点的粒度的同时,将日期用作x轴?

数据如下所示:

enter image description here

这是情节的样子。但是,日期已关闭。我使用data.indexdata.date.index

获得了这些结果
fig, ax = plt.subplots(1,1,figsize=(10,6))
ax.plot(data.date.index, data.Euro, label='EUR')

enter image description here

我使用data.date得到了这个情节。该图未显示所有数据点,但日期是正确的:

fig, ax = plt.subplots(1,1,figsize=(10,6))
ax.plot(data.date, data.Euro, label='EUR')

enter image description here

保持日期表示最简单的方法是什么,但也能正确显示所有数据点?

1 个答案:

答案 0 :(得分:0)

正如coldspeed所说,以下为我工作:

fig, ax = plt.subplots(1,1,figsize=(10,6))
ax.plot(pd.to_datetime(data.date, format='%Y%m%d'), data.Euro, label='EUR')

plt.xlabel('Time', fontsize=14)
plt.ylabel('1 USD in EURO', fontsize=14)
ax.legend(loc='upper right')

plt.show()

另一种解决方案是设置索引列并在加载时解析列:

dateparse = lambda dates: pd.to_datetime(dates, format='%Y%m%d')
data = pd.read_csv('../input/cd07244106ca8b3f.csv',
                   parse_dates=['date'],
                   index_col='date',
                   date_parser=dateparse)

然后  以后只使用:

ax.plot(data.index, data.Euro, label='EUR')

enter image description here