Hello,
running the following code will produce a 2x2 subplot grid with data on the primary_y axes and data on one secondary_y axes.
from plotly.subplots import make_subplots
import plotly.graph_objects as go
import numpy as np
rows = 2
cols = 2
fig = make_subplots(rows=rows, cols=cols, specs=[[{"secondary_y": True}] * cols] * rows)
fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name='1:1 primary_y',),
secondary_y=False, row=1, col=1)
fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name=f'1:2 primary_y',),
secondary_y=False, row=1, col=2)
fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name=f'2:1 primary_y',),
secondary_y=False, row=2, col=1)
fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name=f'2:2 primary_y',),
secondary_y=False, row=2, col=2)
# plot on secondary_y
fig.add_trace(go.Scatter(x=np.arange(5) + 1, y=np.arange(5), name=f'2:2 secondary_y',),
secondary_y=True, row=2, col=2)
fig.update_layout(height=400, width=600)
fig.write_html('test_bug.html')
however if you donβt plot any data on a primary_y axes but leave the data on the secondary_y axes the height of the axes will take up the whole height of the figure
from plotly.subplots import make_subplots
import plotly.graph_objects as go
import numpy as np
rows = 2
cols = 2
fig = make_subplots(rows=rows, cols=cols, specs=[[{"secondary_y": True}] * cols] * rows)
fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name='1:1 primary_y',),
secondary_y=False, row=1, col=1)
fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name=f'1:2 primary_y',),
secondary_y=False, row=1, col=2)
fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name=f'2:1 primary_y',),
secondary_y=False, row=2, col=1)
# fig.add_trace(go.Scatter(x=np.arange(5), y=np.arange(5), name=f'2:2 primary_y',),
# secondary_y=False, row=2, col=2)
# plot on secondary_y
fig.add_trace(go.Scatter(x=np.arange(5) + 1, y=np.arange(5), name=f'2:2 secondary_y',),
secondary_y=True, row=2, col=2)
fig.update_layout(height=400, width=600)
fig.write_html('test_bug.html')
is this behaviour intentional?