gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 09:09:19 24 4
gpt4 key购买 nike

提出了类似的问题:

how to force matplotlib to display only whole numbers on the Y axis

我正在尝试对条形图执行完全相同的操作。我的问题是 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()

条形图:

A bar graph

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

最佳答案

您可以使用fig = plt.gcf()ax = plt.gca()获取对当前图形和轴对象的引用。

但是,使用matplotlib object-oriented interface始终让您可以访问 figax 并使代码更清楚您正在控制哪个图形和轴。

此外,您还可以使用 matplotlib.ticker用于更好地控制刻度位置的模块。在这种情况下,MultipleLocator将会实现将 yaxis 的刻度位置设置为 1 的倍数,将 xaxis 设置为 0.5 的刻度位置。

import matplotlib.pylab as plt
import matplotlib.ticker as ticker

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]

fig, ax = plt.subplots(1)

width = 0.5
ax.bar(x, y, width, color="pink")
ax.set_xlabel('score')
ax.set_ylabel('antall')

ax.xaxis.set_major_locator(ticker.MultipleLocator(0.5))
ax.yaxis.set_major_locator(ticker.MultipleLocator(1))

plt.show()

enter image description here

关于python-3.x - 如何获取对当前图形和轴对象的引用,以便我可以强制条形图 y 轴仅显示整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44197789/

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