Plotly:如何实现仅前两行子图共享X轴,第三行X轴独立设置?
Plotly 子图部分共享X轴的简便实现方法
原代码通过shared_xaxes=True实现了3行子图全部共享X轴,但如果想要仅前两行子图共享X轴,第三行X轴独立设置,可以直接在make_subplots中通过更精细的shared_xaxes参数配置实现,无需事后调用update_xaxis修改轴范围。
具体逻辑是:shared_xaxes支持传入二维列表,列表中的布尔值对应每个子图是否与上方的子图共享X轴。针对3行1列的布局:
- 第1行子图没有上方子图,设为
False - 第2行子图与第1行共享X轴,设为
True - 第3行子图不与第2行共享,设为
False
完整代码如下:
from plotly.subplots import make_subplots import plotly.graph_objects as go # 前两行共享X轴,第三行独立 fig = make_subplots(rows=3, cols=1, shared_xaxes=[[False], [True], [False]], vertical_spacing=0.02) fig.add_trace(go.Scatter(x=[0, 1, 2], y=[10, 11, 12]), row=3, col=1) fig.add_trace(go.Scatter(x=[2, 3, 4], y=[100, 110, 120]), row=2, col=1) fig.add_trace(go.Scatter(x=[3, 4, 5], y=[1000, 1100, 1200]), row=1, col=1) fig.show()
这样设置后,前两行子图会自动同步X轴的范围和刻度,第三行子图的X轴则可以完全独立设置,无需额外修改轴属性。
内容的提问来源于stack exchange,提问作者rhz
相关产品推荐
相关产品推荐

