如何修改已有Plotly子图间的垂直/水平间距?
如何修改已有Plotly子图的垂直/水平间距?
你遇到的"Bad property"错误是因为vertical_spacing和horizontal_spacing并不是layout的属性——这两个参数是创建子图时的初始化参数,属于make_subplots()的配置项,不能通过update_layout()来修改。
两种可行的修改方式:
创建子图时直接指定
这是最直接的方式,在调用make_subplots()时设置间距参数:fig = make_subplots(rows=2, cols=2, vertical_spacing=0.1, horizontal_spacing=0.08)初始化后修改布局的grid属性
如果已经创建了子图,想要后续调整间距,可以直接修改fig.layout.grid中的对应属性:- 修改垂直间距:
fig.layout.grid.vertical_spacing = 0.1 - 修改水平间距:
fig.layout.grid.horizontal_spacing = 0.1
- 修改垂直间距:
修正后的完整示例代码
import numpy as np import plotly.graph_objects as go # 注意这里是复数graph_objects,原代码拼写有误 from plotly.subplots import make_subplots # 初始化子图 fig = make_subplots(rows=2, cols=2, vertical_spacing=0.05) # 添加示例子图内容 fig.add_trace(go.Scatter(x=[1,2,3], y=[4,5,6]), row=1, col=1) fig.add_trace(go.Scatter(x=[1,2,3], y=[6,5,4]), row=1, col=2) fig.add_trace(go.Scatter(x=[1,2,3], y=[7,8,9]), row=2, col=1) fig.add_trace(go.Scatter(x=[1,2,3], y=[9,8,7]), row=2, col=2) # 初始化后调整垂直间距 fig.layout.grid.vertical_spacing = 0.1 fig.show()
注意点:
- 间距参数的取值范围是0到1,代表间距相对于子图高度(垂直)或宽度(水平)的比例
- 注意模块拼写:
plotly.graph_objects是正确的导入路径,原代码中的graph_object少了复数后缀,会导致导入错误
内容的提问来源于stack exchange,提问作者Jon Nir
相关产品推荐
相关产品推荐

