【发布时间】:2026-01-02 08:45:01
【问题描述】:
假设我在每行绘制 2 个图表,共 10 行,使用 plotly:
from plotly.subplots import make_subplots
import plotly.graph_objects as go
N=10
fig = make_subplots(rows=N, cols=2)
fig.add_trace(
go.Scatter(x=x, y=y),
row=1, col=1
)
fig.add_trace(
go.Candlestick(
x=df_kline.index,
open=df_kline['O'],
high=df_kline['H'],
low=df_kline['L'],
close=df_kline['C']
),
row=1, col=2
)
:
fig.show()
如何为每一行设置一个yaxis_title?
如何将整个第一列的 y 轴范围设置为 [1,10],并且只在绘图底部显示刻度标签?
我希望这是一个问题,而不是两个问题,因为它处理的是 group-by-row / group-by-col。
脚注:
根据接受答案中的 cmets,可以在多个子图上设置设置:
subplot_settings = {
'rangeslider_visible': True,
'rangeslider_thickness': 0.05
}
kwargs = {
f'xaxis{k}' : subplot_settings
for k in range(2, 2*N, 2)
}
fig.update_layout(**kwargs)
(未测试)
【问题讨论】: