python刻度增加1个数_Python matplotlib限制到整数刻度位置

很多时候我想制作一个计数的条形图.如果计数低,我经常会得到不是整数的主要和/或次要滴答位置.我该如何防止这种情况?当数据计数时,在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))

如何从第一个例子中获得所需的行为,同时避免在第二个例子中发生什么?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值