如何解决DD.MM.YYYY HH:MM格式日期设置xlim时日月颠倒问题?
解决Matplotlib设置xlim后日期日月颠倒的问题
问题根源是设置xlim()时调用pd.to_datetime()未指定dayfirst=True参数,导致日期解析规则与读入数据时不一致:
- 读取CSV时你用了
dayfirst=True,按DD.MM.YYYY格式解析日期 - 单独调用
pd.to_datetime()时默认按MM.DD.YYYY解析,01.05.2019被错误识别为5月1日,最终显示出现日月颠倒
两种解决方法:
统一日期解析规则
在pd.to_datetime()中显式添加dayfirst=True,和读数据时的规则保持一致:plt.xlim(pd.to_datetime('01.05.2019 00:00', dayfirst=True), pd.to_datetime('01.06.2019 12:00', dayfirst=True))直接复用已解析的索引
从处理好的data1索引中提取目标时间点,避免重复解析可能出现的错误:start_date = data1.index[data1.index == pd.Timestamp('2019-05-01 00:00:00')][0] end_date = data1.index[data1.index == pd.Timestamp('2019-06-01 12:00:00')][0] plt.xlim(start_date, end_date)
内容的提问来源于stack exchange,提问作者fischerteamplan
相关产品推荐
相关产品推荐

