【问题标题】:Python and plot() : how to limit the number of x-axis ticks (labels)Python 和 plot():如何限制 x 轴刻度(标签)的数量
【发布时间】:2023-03-16 02:41:01
【问题描述】:

我有两个列表,大小相同,一个是 y_data,一个是 x_data x_data 是一天中的时间 hh:mm:ss,实际上是每分钟 每个系列都是 1440 长。

问题是:

fig = Figure(figsize=(4,3))
a = gif.add_subplot(111)
a.plot(x_data, y_data)

给出一个不可读的 x_axis(标签太多),如果我将 x_data 减少到 [range(24)] 例如,绘图会出错。

问题:

我希望在 x_axis 尺度上只有 24 个项目(每小时,所以每 60 个 x_data 点有 1 个项目) 有没有一种简单的方法来实现这一点? set_autoscale_on(False) 然后手动设置限制似乎是一种非常复杂的方法来实现这一点(我会失去在 y 轴上自动缩放的好处)。 另一个解决方案似乎涉及a.xaxis.set_ticks(),但我必须创建一个新系列。

o 我想使用 x_data 但只是限制 x_axis 上显示的刻度数,有没有办法做到这一点?

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    matplotlib的pyplot接口提供了一个函数locator_params,在这里可以设置这个选项:

    fig = Figure(figsize=(4,3))
    a = fig.add_subplot(111)
    a.plot(x_data, y_data)
    a.locator_params(nbins=4)
    

    【讨论】:

    • 给出 'AxesSubplot' 对象没有属性 'locator_params'
    • 你有什么 matplotlib 版本?它绝对可以在我安装了 1.1.0 版本的电脑上运行。
    • 你说得对,我是 0.99,升级到 1.0.1-3 并且可以正常工作 - 感谢您的帮助
    • 这是一个很好的方法,但是这会改变 x 轴和 y 轴上的刻度数。如果您只想设置 x 轴上的刻度数,请将最后一行更改为“a.locator_params(nbins=4,axis='x')”
    猜你喜欢
    • 2016-02-05
    • 1970-01-01
    • 2021-08-01
    • 2011-03-28
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多