gpt4 book ai didi

python - 轴刻度不会随 matplotlib 改变

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:34 27 4
gpt4 key购买 nike

我正在尝试使用具有以下 x 值的 matplotlib 进行绘图:

[1.1e19, 5.6e31, 1.1e32, 1.6e32, 2.2e32, 2.8e32]

但是,因为我的第一个 x 值相对于其他值太小,matplotlib 给了我以下内容 autoscaled x-axis .我的第一点位于 y 轴上。我希望这一点更加明显。

我试过:

ax.set_xlim(1e16, 1e36)
ax.set_xlim(xmin=1e16, xmax=1e36)
ax.set_xbound(lower=1e16, upper=1e36)

没有用。我可以更改 x 轴的上限,但不能更改下限。

编辑:对于那些要求示例代码的人,这就是我正在运行的:

dose = np.array([1.1e19, 5.6e31, 1.1e32, 1.6e32, 2.2e32, 2.8e32])
counts = np.array([46, 31, 15, 16, 14, 13])

plt.rcParams['axes.formatter.useoffset'] = False
fig, ax = plt.subplots()
ax.plot(dose, counts, 'ob-')
ax.set_xlim(1e16, 1e36)
#ax.set_xlim(xmin=1e16, xmax=1e36)
#ax.set_xbound(lower=1e16, upper=1e36)

fig.tight_layout()
plt.show()

最佳答案

好消息,坏消息...

您的代码确实有效。如果您查看值 ax.get_xlim(),您将看到您设置的边界。

(使用 Spyder/Ipython 进行一些快速测试)

以下两个屏幕截图是您的绘图...一个线性轴和一个对数轴。 linear example log example

所以看起来 matplotlib 对您可以使用线性轴查看的范围的大小/比例有限制。所有比上边界小三到四个数量级的数据都会被压缩,这样看起来就在 y 轴上

坏消息是我无法为这个挑战提供实际的解决方案......只是你没有做错任何事情。也许它是一个错误?我建议在 matplotlib github page 上开一个问题看看是否有更复杂的解决方案或开发人员之一有想法。

**注意:不是错误......但无论如何都会将链接留给开发团队

如果你的上限是 1e32,那么跟随@PaulH:1e31 绘制在 0.1
1e30 绘制在 0.01
1e29 绘制在 0.001
...
1e16 绘制在 0.0000000000000001

独立于你的下边界是什么。

所以这不是错误,即使下限是 1e16...,您也总是会不知不觉地将那个点放在 y 轴附近......

关于python - 轴刻度不会随 matplotlib 改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44461399/

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