如何在下图中显示mm:ss而不是样本编号?
我试过了:
def formatMS(miliseconds):
return time.strftime('%M:%S', time.gmtime(miliseconds//1000))
fig, ax = plt.subplots()
plt.plot(segtime, segStrength)
labels = [formatMS(t) for t in segtime]
print labels
ax.set_xticklabels(labels)
但现在它显示所有00:00。我该如何解决这个问题?
答案 0 :(得分:5)
作为设置标签的替代方法,您可以使用刻度格式化程序,如下所示:
import matplotlib
import matplotlib.pyplot as plt
import time
segtime = [1000, 2000, 3000, 3500, 7000]
segStrength = [10000, 30000, 15000, 20000, 22000]
fig, ax = plt.subplots()
plt.plot(segtime, segStrength)
formatter = matplotlib.ticker.FuncFormatter(lambda ms, x: time.strftime('%M:%S', time.gmtime(ms // 1000)))
ax.xaxis.set_major_formatter(formatter)
plt.show()
然后,这会将刻度转换为您需要的格式,为您提供: