我有两组数据--xA,yA和xB,yB。
我想用plotly绘制两个并排的散点图,第一个是xA与yA,第二个是xB与yB。
该图的目的是显示一个现象在过去("A "集)和现在("B "集)的差异。
因此,x'es和y'es的极限可以是非常不同的,但是为了直观地比较这两组数据,如果x轴和y轴能共享同一个比例尺就更好了,这样可以显示两组的所有数据。
我尝试了共享y轴,y轴的工作正常。然而,x轴有不同的限制。如果我尝试 "手动 "设置x轴的限制(即使我更喜欢在plotly中自动设置),一开始图是正确显示的,但如果我放大第一个小方块,第二个小方块只在共享的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()
在这种情况下,你需要使用 fig.update_xaxes(matches='x')
来自 Plotly:
...如果子图是用make_subplots创建的,则需要用match参数更新轴,以相应地更新所有子图。