可以对特定子图使用share_xaxis吗?

0 投票
1 回答
11 浏览
提问于 2025-04-14 16:03

我使用make_subplot来创建3行1列的图表,前两行是数据图,最后一行是图片。我想让前两行的数据图共享同一个x轴,但不想让最后一行的图片也共享这个x轴,请问该怎么做?谢谢!

fig = make_subplots(rows=3, cols=1, 
                vertical_spacing=0.05, 
                specs=[[{"secondary_y": False}],[{"secondary_y": True}],[{"secondary_y": False,"type": "image"}]],  #
                subplot_titles=(plot_title_1stsubplot,plot_title_2ndsubplot
                               ),
                row_heights=[0.7,0.15,0.15],
                shared_xaxes=False,
               )

1 个回答

1

注意,设置 shared_xaxesshared_yaxes)其实是一个简便的方法,用来在 x 轴(y 轴)之间建立一个 matches 的约束:

matches - 如果设置为另一个轴的 ID(比如 x2y),那么这个轴的范围就会和对应的轴在数据坐标空间中的范围保持一致。此外,匹配的轴会共享自动范围值、类别列表和直方图的自动分箱。

你可以让第二个子图(第2行)的 x 轴和第一个子图(第1行)的 x 轴保持一致:

fig.update_xaxes(row=2, matches='x')

或者反过来:

fig.update_xaxes(row=1, matches='x2')

撰写回答