我想在右侧的情节plt.plot([1,2,4])
添加第二个y轴,它应该与左轴对齐,但是可以计算不同的单位。
例如缩放为1.因此左边的y轴将是[1,2,3,4],右边应该是[0.25,0.5,0.75,1.0]并且正确对齐。
我怎样才能在matplotlib中做到这一点?
(双轴示例似乎处理了一个不同的用例,你在不同的数据上有未对齐的轴)
答案 0 :(得分:0)
在评论中的链接中对此进行了回答,但是我想在此处添加解决方案,以防链接中断。基本上,您创建一个双轴,并使用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)