【发布时间】:2018-09-04 13:17:24
【问题描述】:
我目前正在使用时间序列创建一个关于股票价格的熊猫项目。我有一个列股票收益,在 y 轴上有负值和正值。我有过去 5 年的数据,并试图在同一个图表中比较每年的月份,但是当我绘制它们时,它们沿着日期分开而不是重叠(下图):
fig, ax = plt.subplots()
Monthly_Return2017.plot(ax=ax)
Monthly_Return2016.plot(ax=ax)
Monthly_Return2015.plot(ax=ax)
Monthly_Return2014.plot(ax=ax)
Monthly_Return2013.plot(ax=ax).axhline(y = 1, color = "black", lw = 2)
plt.show()
因此,我希望在 x 轴上将它们按 1 月至 12 月的月份分开。 无论如何我可以这样做将数据保留为时间序列。 这是三个数据帧的示例。
Close
Date
2017-01-31 1.000000
2017-02-28 1.033158
2017-03-31 1.041128
2017-04-30 1.137012
2017-05-31 1.210934
2017-06-30 1.140489
2017-07-31 1.167811
2017-08-31 1.178893
2017-09-30 1.203717
2017-10-31 1.275920
2017-11-30 1.281906
2017-12-31 1.313270
Close
Date
2016-01-31 1.000000
2016-02-29 0.939188
2016-03-31 1.002692
2016-04-30 0.932781
2016-05-31 0.990268
2016-06-30 0.931557
2016-07-31 1.034780
2016-08-31 1.032438
2016-09-30 1.046221
2016-10-31 1.055979
2016-11-30 1.020311
2016-12-31 1.038859
Close
Date
2015-01-31 1.000000
2015-02-28 1.044676
2015-03-31 1.025219
2015-04-30 1.010808
2015-05-31 1.000970
2015-06-30 0.979148
2015-07-31 1.176855
2015-08-31 1.163010
2015-09-30 1.144519
2015-10-31 1.337128
2015-11-30 1.396929
2015-12-31 1.427554
任何帮助将不胜感激。
【问题讨论】:
-
这有点不清楚,2016 年有 2 月 29 日,其他年份没有。它们应该如何以相同的比例绘制?
-
@ImportanceOfBeingErnest 我很确定这是因为 2016 年是闰年
-
是的,我知道 2016 年是闰年。同样,应该如何将不同年份的日期绘制在相同的比例上?一旦你回答了这个问题,我就可以帮你实现。
-
@ImportanceOfBeingErnest,它们将在几个月内绘制为折线图,因此例如在 x 轴上,2016 年的 03-31 将在 y 轴上的 1.002692 和 2017 年的 03-31 上在 y 轴上位于 1.041128
-
您的问题是关于 x 轴,而不是 y 轴。那么与
2017-03-31相比,2016-03-31在 xaxis 上的位置,以及与2017-02-28相比,2016-02-29的位置在哪里?
标签: python pandas matplotlib jupyter-notebook