Plotly奇数个子图布局调整:将底部子图居中对齐
解决方法
直接用make_subplots的specs参数就能实现,关键是让第二行第一个位置留空,把两个子图放到该行的第2、3列,再微调间距即可:
import plotly.graph_objects as go from plotly.subplots import make_subplots # 用specs定义布局:第一行3个子图,第二行第一个位置空着,后两个放子图 fig = make_subplots(rows=2, cols=3, shared_yaxes=True, horizontal_spacing=0.05, specs=[[{}, {}, {}], [None, {}, {}]]) # 第一行子图位置不变 fig.add_scatter(x=[1,2,3],y=[1,2,3], row=1, col=1) fig.add_scatter(x=[1,2,3],y=[1,2,3], row=1, col=2) fig.add_scatter(x=[1,2,3],y=[1,2,3], row=1, col=3) # 第二行子图移到第2、3列,实现居中 fig.add_scatter(x=[1,2,3],y=[1,2,3], row=2, col=2) fig.add_scatter(x=[1,2,3],y=[1,2,3], row=2, col=3) fig.update_layout(showlegend=False) fig.show()
说明
specs是二维列表,其中None代表对应位置不生成子图,直接留空;{}代表创建默认配置的子图。- 调整
horizontal_spacing可以让子图间距更自然,避免居中后显得拥挤或松散。 - 把第二行的子图从原来的第1、2列改到第2、3列,配合第一列的空位置,就能让这两个子图正好处于第二行的中间区域。
内容的提问来源于stack exchange,提问作者soungalo
相关产品推荐
相关产品推荐

