gpt4 book ai didi

Python matplotlib 限制为整数刻度位置

转载 作者:太空狗 更新时间:2023-10-29 17:03:02 24 4
gpt4 key购买 nike

我经常想制作计数条形图。如果计数很低,我经常会得到不是整数的主要和/或次要刻度位置。我怎样才能防止这种情况发生?当数据计数时,在 1.5 处打勾是没有意义的。

这是我的第一次尝试:

import pylab
pylab.figure()
ax = pylab.subplot(2, 2, 1)
pylab.bar(range(1,4), range(1,4), align='center')
major_tick_locs = ax.yaxis.get_majorticklocs()
if len(major_tick_locs) < 2 or major_tick_locs[1] - major_tick_locs[0] < 1:
ax.yaxis.set_major_locator(pylab.MultipleLocator(1))
minor_tick_locs = ax.yaxis.get_minorticklocs()
if len(minor_tick_locs) < 2 or minor_tick_locs[1] - minor_tick_locs[0] < 1:
ax.yaxis.set_minor_locator(pylab.MultipleLocator(1))

当计数很小但当它们很大时,它工作正常,我得到很多很多小滴答声:

import pylab
ax = pylab.subplot(2, 2, 2)
pylab.bar(range(1,4), range(100,400,100), align='center')
major_tick_locs = ax.yaxis.get_majorticklocs()
if len(major_tick_locs) < 2 or major_tick_locs[1] - major_tick_locs[0] < 1:
ax.yaxis.set_major_locator(pylab.MultipleLocator(1))
minor_tick_locs = ax.yaxis.get_minorticklocs()
if len(minor_tick_locs) < 2 or minor_tick_locs[1] - minor_tick_locs[0] < 1:
ax.yaxis.set_minor_locator(pylab.MultipleLocator(1))

我如何才能从第一个示例中获得所需的行为,同时避免第二个示例中发生的情况?

最佳答案

您可以使用 MaxNLocator 方法,如下所示:

    from pylab import MaxNLocator

ya = axes.get_yaxis()
ya.set_major_locator(MaxNLocator(integer=True))

关于Python matplotlib 限制为整数刻度位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11258212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com