gpt4 book ai didi

python - 在对数 pyplot 中同时使用 yticks 和 ylim

转载 作者:太空宇宙 更新时间:2023-11-04 04:09:35 25 4
gpt4 key购买 nike

我在对数比例 pyplot 中同时使用 ylimyticks 时遇到了一些问题。查看以下代码的输出:

将 numpy 导入为 np从 matplotlib 导入 pyplot 为 plt

plt.figure(figsize=(5, 3))
x = np.linspace(0, 1, 101)
y = np.exp(-5*x)
plt.plot(x, y, 'o', c=blue, markersize=4)
plt.yscale('log')
plt.yticks([10**-1, 1/np.e, 10**0], [r'$10^{-1}$', r'$1/e$', r'$10^0$'])
plt.ylim(10**-1,10**0)

这给出了

enter image description here

很明显,报价比我指定的要多。但是,如果我不使用 ylimyscale,则会显示正确的 3 个刻度。使用 semilogy 会导致同样的问题。有没有人以前遇到过这个,有没有人知道解决方法?这是针对 matplotlib 3.1 的,但它也发生在 3.0 中(我刚刚从中升级)。

最佳答案

您看到的基本上是次要刻度标签。我认为它们在设置限制后出现的原因是因为您有点在小范围内放大。一个简单的解决方法是隐藏次要刻度标签。要访问它们,我使用轴对象 ax

fig, ax = plt.subplots(figsize=(5, 3)) # <--- Define an axis object
x = np.linspace(0, 1, 101)
y = np.exp(-5*x)
plt.plot(x, y, 'o', c='blue', markersize=4)
plt.yscale('log')

plt.ylim(10**-1,10**0)
plt.setp(ax.get_yminorticklabels(), visible=False) # <--- Hide the minors
plt.yticks([10**-1, 1/np.e, 10**0], [r'$10^{-1}$', r'$1/e$', r'$10^0$']);

enter image description here

关于python - 在对数 pyplot 中同时使用 yticks 和 ylim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56581665/

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