如何格式化Matplotlib次要yaxis datetime值

2024-09-27 01:28:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用matplotlib绘制一个叠加在条形图上的折线图。数据已正确绘制,但描述预测开始时间的辅助y轴输出不正确。预测开始时间的所有值都四舍五入到小时,例如(13:00、14:00等),但绘制时在y轴上转换为11:40、12:13:20等,如下所示:

Forecasted Start Time csv data

Forecasted Start Time and Event Length vs. Forecast Run graph

生成此图像的代码如下所示:

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的实际日期时间值的想法都将不胜感激


Tags: csveventtimenp时间绘制pltax
1条回答
网友
1楼 · 发布于 2024-09-27 01:28:24

需要使用ax.barax2.plot而不是plt.barplt.plot在axis对象上打印

可以使用axis格式化程序执行以下操作:

from matplotlib.dates import DateFormatter

ax2.yaxis.set_major_locator(md.HourLocator(interval=1))
ax2.yaxis.set_major_formatter(md.DateFormatter('%H:%M'))

相关问题 更多 >

    热门问题