Взгляните на этот пример. Я начну с создания фигуры 3x2 с общей осью Y для каждой строки.
Код: Выделить всё
import numpy as np
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import plotly.io as pio
pio.renderers.default = "browser"
np.random.seed(42)
N = 20
nrows, ncols, ntraces = 3, 2, 3
fig = make_subplots(
rows=nrows, cols=ncols,
shared_xaxes=True, shared_yaxes=True,
)
for r in range(nrows):
scale = 1 / 10 ** r
for c in range(ncols):
for t in range(ntraces):
y = np.random.randn(N) * scale
fig.add_trace(
row=r + 1, col=c + 1,
trace=go.Scatter(y=y, mode="markers+lines", name=f"trace {t}")
)
fig.update_layout(showlegend=False)
fig.show()

Теперь я хочу вручную установить диапазон только для первой строки, что я и делаю:
Код: Выделить всё
fig.update_yaxes(range=[-2, 2], row=1, col=1)
fig.show()
Код: Выделить всё
[-1, 4]

Я пробовал установка диапазона других строк вручную с использованием различных комбинаций range и rangemode='normal', например:
Код: Выделить всё
fig.update_yaxes(range=[None, None], row=2, col=1)
fig.update_yaxes(range=None, row=2, col=1)
fig.update_yaxes(rangemode='normal', row=2, col=1)
Как вручную установить диапазон оси Y только для одной из осей?
Подробнее здесь: https://stackoverflow.com/questions/790 ... tly-python