gpt4 book ai didi

python - 我如何在 matplotlib 中设置小刻度的位置

转载 作者:太空狗 更新时间:2023-10-29 21:19:47 28 4
gpt4 key购买 nike

我想在 matplotlib 绘图中的 x 轴上在次要刻度的位置而不是主要刻度的位置绘制一个网格。我的市长标记位于位置 0、1、2、3、4、5 并且必须保留在那里。我希望网格为 0.5、1.5、2.5、3.5、4.5。

....
from matplotlib.ticker import MultipleLocator
....
minorLocator = MultipleLocator(0.5)
ax.xaxis.set_minor_locator(minorLocator)
plt.grid(which='minor')

上面的代码不起作用,因为它给出了 0.5、1.0、1.5 等位置……我如何手动设置次刻度的位置?

最佳答案

您可以使用 matplotlib.ticker.AutoMinorLocator .这会自动将 N-1 个次要刻度放置在主刻度之间等距的位置。

例如,如果您使用 AutoMinorLocator(5),那么这将在每对主要刻度之间等距放置 4 个次刻度。对于您的用例,您希望 AutoMinorLocator(2) 仅将一个放在中点。

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.ticker import AutoMinorLocator

N = 1000
x = np.linspace(0, 5, N)
y = x**2

fig, ax = plt.subplots()

ax.plot(x, y)

minor_locator = AutoMinorLocator(2)
ax.xaxis.set_minor_locator(minor_locator)
plt.grid(which='minor')

plt.show()

Example plot

使用 AutoMinorLocator 的优势在于,如果您需要扩大数据规模,例如您的主要刻度位于 [0, 10, 20, 30, 40, 50],那么你的小刻度将放大到位置 [5, 15, 25, 35, 45]

如果你真的需要硬设置位置,即使在缩放/更改之后,然后查找 matplotlib.ticker.FixedLocator .有了它,您可以传递一个固定列表,例如 FixedLocator([0.5, 1.5, 2.5, 3.5, 4.5])

关于python - 我如何在 matplotlib 中设置小刻度的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28810403/

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