【发布时间】:2020-09-16 20:54:31
【问题描述】:
我有以下代码:
ax = plt.gca()
datamax.plot(kind='line',x='Date',y='Data_Value',color='red',ax=ax)
datamin.plot(kind='line',x='Date',y='Data_Value', color='blue',ax=ax)
plt.ylabel("Temperature (degrees C)",color='navy')
plt.xlabel("Date",color='navy',labelpad=15)
plt.title('Record high and low temperatures by day (2005-2014)', alpha=1.0,color='brown',y=1.08)
ax.legend(loc='upper center', bbox_to_anchor=(0.5, -0.35),
fancybox=False,labels=['Record high','Record low'])
plt.xticks(rotation=30)
plt.fill_between(datamax['Date'],datamax['Data_Value'],datamin['Data_Value'],where = None,color='yellow',alpha=0.25)
plt.show()
但是,我不断收到错误消息:
序数必须 >= 1
有人可以帮我一把吗?
我不明白为什么“fill_between”功能不起作用。
【问题讨论】:
-
你能检查一下这是否有帮助..stackoverflow.com/questions/45257475/…
-
@Anshul 可悲的是不适合我!
-
如果您从文件中读取它,请将文件上传到云服务并在此处发布链接。如果这不可用,您能否发布
datamax.head()的值? -
问题是您使用 pandas 绘制线图,而使用标准 matplotlib 绘制 fill_between。两者对日期的解释完全不同。在 pandas 使用分类 x 轴的情况下,您可以尝试
plt.fill_between(range(len(datamax['Date'])), datamax['Data_Value'], datamin['Data_Value'], ...)。
标签: python pandas matplotlib plot data-visualization