gpt4 book ai didi

python - matplotlib 中相同数据上具有不同单位的第二个绘图轴?

转载 作者:行者123 更新时间:2023-12-03 17:17:20 27 4
gpt4 key购买 nike

我想在我的绘图中添加第二个 y 轴 plt.plot([1,2,4])在右侧,应与左轴对齐,但可以计算不同的单位。

例如缩放到 1。因此有效地左侧 y 轴将是 [1,2,3,4],右侧应该是 [0.25, 0.5, 0.75, 1.0] 并正确对齐。

我怎样才能在 matplotlib 中做到这一点?

(双轴示例似乎处理不同的用例,其中您在不同的数据上有未对齐的轴)

最佳答案

这在评论中的链接中得到了回答,但我想在此处添加解决方案,以防链接断开。基本上你制作一个双轴,并使用 callbacks.connect以确保新轴在原始轴更新时更新。因此,连接代码需要在绘图命令之前。使用 OP 的示例:

import matplotlib.pyplot as plt

x = [1,2,3,4]

fig, ax1 = plt.subplots()

# add second axis with different units, update it whenever ax1 changes
ax2 = ax1.twinx()

def convert_ax2(ax1):
y1, y2 = ax1.get_ylim()
ax2.set_ylim(y1/max(x), y2/max(x))
ax2.figure.canvas.draw()

ax1.callbacks.connect("ylim_changed", convert_ax2)

ax1.plot(x)
plot with two axes

关于python - matplotlib 中相同数据上具有不同单位的第二个绘图轴?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39920252/

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