我正在 Python Matplotlib 中绘制以 mm:ss.tttt 格式获得的时间线图。
我已经将这些值转换回 10thousanths 秒,我可以创建一个漂亮的情节。但这意味着 Y 轴显示的值是“832323”,而不是更容易阅读的“1:23.2323”。
有什么方法可以适当地格式化输出值吗?
我正在 Python Matplotlib 中绘制以 mm:ss.tttt 格式获得的时间线图。
我已经将这些值转换回 10thousanths 秒,我可以创建一个漂亮的情节。但这意味着 Y 轴显示的值是“832323”,而不是更容易阅读的“1:23.2323”。
有什么方法可以适当地格式化输出值吗?
在我写完这篇文章后不久,我自己解决了这个问题。使用 Matplotlibs 的轴,set_major_formatter() 函数。
我写了一个快速格式化函数,它会在千分之一秒内获取一个值,然后将其转换回 mm:ss.tttt。然后将此格式化程序传递给轴定义。
将“ticker”模块与绘图内容一起导入:
import matplotlib.pyplot as plt
from matplotlib import ticker
创建自己的值格式化函数:
def format_10Kth_time(time, pos=None):
mins = time // (10000 * 60)
secs = (time - (mins * 10000 * 60)) // (10000)
fracsecs = time % 10000
return "%d:%02d.%d" % (mins, secs, fracsecs)
然后在我的绘图代码中,我这样做是为了改变 Y 轴格式:
plt.gca().yaxis.set_major_formatter(ticker.FuncFormatter(format_10Kth_time))
plt.plot(...)
plt.show()