在同一x轴上绘制时间序列的每年

时间:2020-06-15 14:29:03

标签: python matplotlib graph

我有一个时间序列,其中要绘制每日数据,以查看其在一年中的变化情况。我想比较一下它与前几年相比在一年中的发展情况。我已经用Python编写了以下代码:

xindex = data['biljett'].index.month*30 + data['biljett'].index.day
plt.plot(xindex, data['biljett'])
plt.show()

该图如下所示: 与过去几年相比,一年中数据如何演变的图表。这条线是连续的,并且没有在年底结束,这使它变得模糊。我在做什么错了?

enter image description here

2 个答案:

答案 0 :(得分:0)

从技术角度来看,发生这种情况是因为您的数据点没有经过排序。日期,因此以数据帧顺序来回连接数据点。您根据xindex对数据进行排序,就可以了。为此:(首先,您需要将xindex数据框中的data作为新列放置)

data.sort_values(by='xindex').reset_index(drop=True)

从可视化的角度来看,我认为您每天可能会有多个值,因此plot并不是一个好的选择。因此,恕我直言,您希望尝试plt.scatter()以更好的方式可视化数据。

答案 1 :(得分:0)

我的改写如下:

 xindex = data['biljett'].index.month*30 + data['biljett'].index.day
 data['biljett'].sort_values('xindex').reset_index(drop=True)
 plt.plot(xindex, data['biljett'])
 plt.show()

,但收到以下错误消息: ValueError:没有名为对象类型

的轴xindex