python - matplotlib:更改轴

标签 python matplotlib

我有一系列测量值 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/

相关文章:

matplotlib - Python Matplot Y 轴负到正标签范围

python - 如何在 matplotlib 中将数字转换为色标?

python - docker/matplotlib : RuntimeError: Invalid DISPLAY variable

python - 使用 matplotlib 进行 PCA 的基本示例

python - 如何获取修改对象的用户? Django 简单历史

python - 比较三个(或更多)词典并在至少两个词典相等的情况下找到匹配项

python - 如何将 gizeh 矢量动画叠加到具有透明度的电影视频上?

python - 使图例对应于matplotlib中散点的颜色

python请求获取网页失败

python - 将不同版本(python 2.7 vs 3.5)上传到 PyPI