fig.update_layout() 仅适用于 整个 图形的属性,这就是为什么您不能像使用 fig.update_traces(row, col) 那样使用 fig.update_layout(row = 2, col = 2) 处理子图的属性。因此,根据您想在这里实现的目标,您将不得不在您的make_subplots() 调用中通过specs 和/或row_heights 和column_widths 调整子图的外观。
以下是使用这两种方法的示例:
完整代码:
from plotly.subplots import make_subplots
import plotly.graph_objects as go
fig = make_subplots(
rows=5, cols=2,
column_widths = [0.7, 0.3],
row_heights = [0.2, 0.2, 0.2, 0.1, 0.1],
specs=[[{}, {"rowspan": 2}],
[{}, None],
[{"rowspan": 2, "colspan": 2}, None],
[None, None],
[{}, {}]],
# print_grid=True
)
fig.add_trace(go.Scatter(x=[1, 2], y=[1, 2], name="(1,1)"), row=1, col=1)
fig.add_trace(go.Scatter(x=[1, 2], y=[1, 2], name="(1,2)"), row=1, col=2)
fig.add_trace(go.Scatter(x=[1, 2], y=[1, 2], name="(2,1)"), row=2, col=1)
fig.add_trace(go.Scatter(x=[1, 2], y=[1, 2], name="(3,1)"), row=3, col=1)
fig.add_trace(go.Scatter(x=[1, 2], y=[1, 2], name="(5,1)"), row=5, col=1)
fig.add_trace(go.Scatter(x=[1, 2], y=[1, 2], name="(5,2)"), row=5, col=2)
fig.update_layout(height=600, width=600, title_text="specs examples")
fig.show()