我正在尝试使用matplotlib绘制叠加在条形图上的折线图。数据已正确绘制,但是描述预测开始时间的辅助y轴输出错误。“预测的开始时间”的所有值均四舍五入为小时,例如(13:00、14:00等),但在绘制时将其在y轴上转换为11:40、12:13:20等,如下所示:
生成该图像的代码如下:
en1 = []
en2 =[]
en1 = np.array(fh.loc(axis=0)[0:44])
en2 = np.array(ev.loc(axis=0)[0:44])
fig,ax = plt.subplots(figsize=(10,10))
ax.bar(en1,en2,color='gainsboro')
plt.ylabel('Forecasted Event Length')
plt.xticks(rotation='90')
ax2 = ax.twinx()
mn, mx = ax2.get_ylim()
ax2.set_ylabel('Forecasted Start Time')
color = 'tab:blue'
ax2.tick_params(axis='y')
ax2.plot(fh,start, marker='o')
plt.legend()
任何有关如何在辅助y轴上正确绘制csv的实际datetime值的想法,将不胜感激!
您需要使用ax.bar
和ax2.plot
而不是plt.bar
和在轴对象上进行绘制plt.plot
。
您可以使用轴格式化程序来执行此操作:
from matplotlib.dates import DateFormatter
ax2.yaxis.set_major_locator(md.HourLocator(interval=1))
ax2.yaxis.set_major_formatter(md.DateFormatter('%H:%M'))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句