Matplotlib-转换后axis中的奇怪日期时间格式

Matplotlib-转换后axis中的奇怪日期时间格式,matplotlib,Matplotlib,我正在尝试将我的axis标签从修改的julian日期(自1858-11-17年以来的天数)转换为datetime。我得到了从float到datetime的转换,但是当我试图格式化轴标签只是为了显示%Y-%m-%d”时,我仍然在轴标签中得到%Y-%m-%d%H:%m:%S“ 这是我的转换代码: import datetime MJD0 = datetime.datetime(year=1858, month=11, day=17) def ConvertMJDDateTime(MJD):

我正在尝试将我的axis标签从修改的julian日期(自1858-11-17年以来的天数)转换为datetime。我得到了从float到datetime的转换,但是当我试图格式化轴标签只是为了显示
%Y-%m-%d”
时,我仍然在轴标签中得到
%Y-%m-%d%H:%m:%S“

这是我的转换代码:

import datetime
MJD0 = datetime.datetime(year=1858, month=11, day=17)

def ConvertMJDDateTime(MJD):
    return MJD0 + datetime.timedelta(days=int(MJD))
以及我的打印格式代码:

labels = ax1.get_xticks()
datetimes = [ConvertMJDDateTime(t) for t in labels]
ax1.set_xticklabels(datetimes)
fig.autofmt_xdate()
import matplotlib.dates as mdates
yearsFmt = mdates.DateFormatter('%Y-%m-%d')
ax1.format_xdata = yearsFmt

提前多谢。

这不是
format\u xdata
的功能(它控制鼠标在数据上的显示方式)。查看
set\u major\u formatter()
此外,您几乎不应该使用
set\u xtickslabels
这是危险的,会将刻度标签与数据分离。@tcaswell您建议使用什么来代替
set\u xticklabels
?尝试使用
set\u major\u formatter()
但年份格式出错