python - 如何仅绘制日期时间数组的第一个毫秒数字

标签 python datetime milliseconds

我有一个包含毫秒的日期时间数组。我仅使用以下方法绘制时间:

formatterTime = '%H:%M:%S.%f'
ax0.xaxis.set_major_formatter(formatterTime)

但是,日期时间数组有 6 位毫秒数字,绘制为“11:45:05.100000”,而我只想要 1 个毫秒数字,例如“11:45:05.1”。

我尝试过诸如此类的建议

.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]

但这似乎只在将日期时间打印到字符串时才有效。

有没有办法只显示绘图上的第一个毫秒数字,而不修改原始日期数组?

最佳答案

您可以使用 FuncFormatter 设置您自己的格式。请参阅此示例(带有一些虚假数据):

from matplotlib.ticker import FuncFormatter
from matplotlib.dates import num2date

x = pd.date_range("2020-01-01", periods = 10, freq = "131ms")
y = range(10)

fig, ax = plt.subplots()

def foo(a, b):
    t = num2date(a)
    ms = str(t.microsecond)[:1]
    res = f"{t.hour:02}:{t.minute:02}:{t.second:02}.{ms}"
    return res

ax.xaxis.set_major_formatter(FuncFormatter(foo))

ax.plot(x, y)

结果是:

enter image description here

关于python - 如何仅绘制日期时间数组的第一个毫秒数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62575054/

相关文章:

MongoDB:将日期字符串 (mm/dd/yyyy) 转换为 Unix 时间戳

python - 如何将文本文件(或字符串发送到 QML 中的 textArea)从 python 到 QML 应用程序?

python - 如何从 Python 中的 SQLite3 数据库查询构建字典列表?

php - 日期时间不会在数据库中更新

java - XSL 通过偏移比较将 UTC 时间转换为本地日期时间

c++ - 将 time_duration 转换为 DATE

java - 在 Java 中将持续时间字符串转换为毫秒

java - 纳秒到毫秒和纳秒 < 999999 在 Java 中的转换

python - 如何连接两个具有不同 MultiIndex 值的数据帧并使一个数据帧重复?

python - 尝试调用类方法时出现 NameError 问题