我想plt.plot([1,2,4])在右侧的图中添加第二个 y 轴,它应该与左轴对齐,但可以计算不同的单位。
例如缩放到 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1746 次 |
| 最近记录: |