我有一系列测量值 m,每分钟进行一次。我通过简单地说来绘制这些测量值与时间的关系
import pylab as pl
pl.plot(range(len(m)), m)
这给了我 x 轴上的分钟(只是因为我以分钟为单位进行测量,而 range(len(m)) 给了我整数)。如何快速将 x 轴的标签更改为小时?我基本上需要采用标签 mod 60,但我只想使用整数小时值。
简而言之,我想在 x 轴上重新标记每个 60 的倍数。
最佳答案
抱歉,您需要创建一个轴而不是 xlabels,然后使用 ax.set_xticklabels:
from matplotlib.pyplot import figure
fig = figure()
ax = fig.add_subplot(111)
def mk_labels(vals):
labels = []
for i in vals:
if i % 60 == 0:
labels.append("Some new special label")
else:
labels.append(i)
ax.set_xticklabels(mk_labels(range(len(m))))
ax.plot(range(len(m)), m)
或者简单地说:
ax.set_xticklabels(["{0}h".format(i) if i % 60 == 0 else i for i in range(len(m))])
这两种方法都可以,如果您需要更复杂的格式,第一种方法可能会更容易。
关于python - matplotlib:更改轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7205826/