我正在 Python Matplotlib 中以 mm:ss.tttt 格式绘制时间线图。
我已经将这些值转换回千分之一秒,我可以创建一个漂亮的绘图。但这意味着 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()
关于python - 如何绘制时间图表 (mm :ss) in Matplotlib (formatting output values),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14679639/