与共享 yaxes 但“链接” xaxes 的阴谋

edo*_*edo 1 python plotly

我有两组数据 - xA, yA 和 xB, yB。

我想并排绘制两个散点图,第一个散点图是 xA 与 yA,第二个是 xB 与 yB。

该图旨在显示过去(“A”组)和现在(“B”组)现象的差异。

因此,x'es 和 y'es 的限制可能非常不同,但是为了直观地比较这两组,最好 x 轴和 y 轴共享相同的比例,这样可以显示来自两组的所有数据。

我尝试使用共享 y 轴,对于 y 轴,它可以正常工作。但是,x 轴有不同的限制。如果我尝试“手动”设置 x 轴限制(即使我更喜欢自动绘图),首先会正确显示绘图,但是例如,如果我放大第一个、第二个的小方块一个仅在共享的 y 轴上调整大小,而 x 轴保持未缩放,因此情节失去意义。

如何“链接”两个图的轴?

from plotly.subplots import make_subplots
import plotly.graph_objects as go

fig = make_subplots(rows=1, cols=2,
                    shared_yaxes=True,
                    horizontal_spacing=0.02)

fig.add_trace(go.Scattergl(x=xA, y=yA, mode='markers'), row=1, col=1)
fig.add_trace(go.Scattergl(x=xB, y=yB, mode='markers'), row=1, col=2)

fig.update_layout(height=600, width=1200)

# I would prefer not to calculate limits by hand, but even if I do the zoom is not linked on x'es
fig.update_xaxes(range=[0, 60], row=1, col=1)
fig.update_xaxes(range=[0, 60], row=1, col=2)

fig.show()
Run Code Online (Sandbox Code Playgroud)

jay*_*sea 7

在这种情况下,您需要使用 fig.update_xaxes(matches='x')

从情节:

...如果子图是使用 make_subplots 创建的,则需要使用匹配参数更新轴以相应地更新所有子图。