相关疑难解决方法(0)

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))
Run Code Online (Sandbox Code Playgroud)

当计数很小时工作正常但是当它们很大时,我得到很多很小的刻度:

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)) …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

15
推荐指数
2
解决办法
1万
查看次数

如何获取对当前图形和轴对象的引用,以便我可以强制条形图 y 轴仅显示整数

有人提出了类似的问题:

如何强制 matplotlib 在 Y 轴上仅显示整数

我正在尝试对条形图执行完全相同的操作。我的问题是 bar 对象没有解压到Fig、ax。这是代码:

import matplotlib.pylab as plt
x = [0, 0.5, 1, 2, 3, 3.5, 4, 4.5, 5, 7.5, 8.5,9]
y = [1,2,2,3,1,2,2,2,2,1,1,0]
width = 0.5
plt.bar(x, y, width, color="pink")
plt.xlabel('score')
plt.ylabel('antall')
plt.show()
Run Code Online (Sandbox Code Playgroud)

和条形图:

条形图

我只想在 y 轴上显示整个整数,在 x 轴上显示相反的整数(即数字 0 到 10,增量为 0.5)。

matplotlib python-3.x

2
推荐指数
1
解决办法
5961
查看次数

标签 统计

matplotlib ×2

python ×1

python-3.x ×1