【发布时间】:2019-09-11 02:45:58
【问题描述】:
我有两个熊猫系列,一个是全年 7 天滚动平均值,另一个是月平均值。我试图将它们都绘制在同一个 matplotlib 图上,平均值为条形图,7 天滚动平均值为折线图。理想情况下,该线将是条形图顶部的图形。
我遇到的问题是,使用我当前的代码,条形图显示时没有折线图,但是当我首先尝试绘制折线图时,我得到一个 ValueError: ordinal must be >= 1。
这是该系列的外观:
这些是 7 天滚动平均值系列的前 15 个值,它有一个日期和一个全年的值:
date
2016-01-01 NaN
2016-01-03 NaN
2016-01-04 NaN
2016-01-05 NaN
2016-01-06 NaN
2016-01-07 NaN
2016-01-08 0.088473
2016-01-09 0.099122
2016-01-10 0.086265
2016-01-11 0.084836
2016-01-12 0.076741
2016-01-13 0.070670
2016-01-14 0.079731
2016-01-15 0.079187
2016-01-16 0.076395
这是整个月平均系列:
dt_month
2016-01-01 0.498323
2016-02-01 0.497795
2016-03-01 0.726562
2016-04-01 1.000000
2016-05-01 0.986411
2016-06-01 0.899849
2016-07-01 0.219171
2016-08-01 0.511247
2016-09-01 0.371673
2016-10-01 0.000000
2016-11-01 0.972478
2016-12-01 0.326921
这是我用来尝试绘制它们的代码:
ax = series_one.plot(kind="bar", figsize=(20,2))
series_two.plot(ax=ax)
plt.show()
这是生成的图表:
非常感谢任何帮助!此外,关于格式化这个问题和创建代码以制作两个系列的最小工作示例的建议会很棒。
谢谢!!
【问题讨论】:
-
关于您要求的其他建议,请参阅♠How to make good reproducible pandas examples,特别注意简单的表不允许知道打印值的数据类型(例如,int vs. string vs.时间戳)。
标签: python pandas matplotlib