如何使用 matplotlib 以指数方式缩放 Y 轴

2024-01-03

我正在尝试创建一个带有指数(?)Y 轴的 matplotlib 图,就像我在下面模拟的假图一样。对于我的数据,我希望在接近最大 Y 值时将这些值展开。我想在 Y 接近零时压缩这些值。

所有正常的“对数”示例都会执行相反的操作:当值远离零时,它们会压缩值。当然,这就是“日志”的作用。我怎样才能创建指数(?)缩放呢?


从 matplotlib 3.1 开始,您可以通过以下方式轻松定义任何自定义比例

ax.set_yscale('function', functions=(forward, inverse))

另请参阅https://matplotlib.org/3.1.1/gallery/scales/scales.html https://matplotlib.org/3.1.1/gallery/scales/scales.html

在这种情况下,例如:

from functools import partial

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(1, 40, 100)
y = np.linspace(1, 4, 100)

fig, ax = plt.subplots()
ax.plot(x, y)

# Set y scale to exponential
ax.set_yscale('function', functions=(partial(np.power, 10.0), np.log10))
ax.set(xlim=(1,40), ylim=(1,4))
ax.set_yticks([1, 3, 3.5, 3.75, 4.0])

plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 matplotlib 以指数方式缩放 Y 轴 的相关文章

随机推荐