Python Matplotlib dateformatter未按要求格式化日期

Python Matplotlib dateformatter未按要求格式化日期,python,pandas,matplotlib,pycharm,dateformatter,Python,Pandas,Matplotlib,Pycharm,Dateformatter,我有这个熊猫数据框,我想通过只显示天、小时、分钟和秒来绘制它 随着时间的推移,我有一个Unix时间戳,单位为ms,我将它转换为您在dataframe中已经看到的格式 frm = mdates.DateFormatter('%Y-%m-%d %H:%M:%S') df['startTime'] = pd.to_datetime((df['startTime']), unit='ms') print(df) plt.plot_date(df['startTime'], df['parameter

我有这个熊猫数据框,我想通过只显示天、小时、分钟和秒来绘制它

随着时间的推移,我有一个Unix时间戳,单位为ms,我将它转换为您在dataframe中已经看到的格式

frm = mdates.DateFormatter('%Y-%m-%d %H:%M:%S')
df['startTime'] = pd.to_datetime((df['startTime']), unit='ms')
print(df)

plt.plot_date(df['startTime'], df['parameter.value'], linestyle='solid')
plt.gcf().autofmt_xdate()
plt.gca().xaxis.set_major_formatter(frm)

plt.show()
虽然我用DateFormatter格式化了它,但是分钟和秒仍然不会出现在绘图中


如果X轴是字符串,则可以不舍入地显示日期/时间格式

import matplotlib.dates as mdates
import matplotlib.pyplot as plt

df['startTime'] = pd.to_datetime(df['startTime'], format='%Y-%m-%d %H:%M:%S.%f')
print(df)

plt.plot_date(df['startTime'].astype(str), df['parameter.value'], xdate=True, linestyle='solid')
# plt.gcf().autofmt_xdate()
# plt.gca().xaxis.set_major_formatter(frm)

plt.xticks(rotation=90)
plt.show()

您能提供一份详细的报告吗?这只是为了让任何回答问题的人都能重现问题,并能更有效地诊断问题。最好有一个示例,包括如何创建和格式化数据帧。这是一个解决方法,事实上我知道。我很惊讶为什么DateFormatter不适用于%M:%S。不过,非常感谢您的努力。我标记了答案,但不幸的是我不能接受它作为解决方案。
SecondLocator(interval=3000)
如果您这样做,它将以秒为单位显示,但interval值将以3000秒为单位,这不符合您的目的,因此您选择了一个字符串。很抱歉没有达到你的期望。