Dear Community,
I have created a graph with 8 subplots corresponding to the energy production of each wind turbine in a farm per year. Each subplot corresponds to a different year of operation. I managed to get a nice colorscale applied to each of the subplots but each of the colorscales has a different range (based on the data in each of the subplots).
I would like to make one where there is a “global” colorscale and the values in each plot correspond to the fixed colours. I would be grateful for your suggestions.
SUBPLOTS WITH AEP per turbine
def aep_turbine_subplot_fig(years, AEP):
fig = make_subplots(rows = 4, cols = 2, subplot_titles = years) fig.add_trace(go.Bar(x = get_turbine_names(), y = AEP.iloc[0,:], name = '2012', marker = {'color': AEP.iloc[0,:], 'colorscale': 'RdBu'}), row = 1, col = 1) fig.add_trace(go.Bar(x = get_turbine_names(), y = AEP.iloc[1,:], name = '2013', marker = {'color': AEP.iloc[1,:], 'colorscale': 'RdBu'}), row = 1, col = 2) fig.add_trace(go.Bar(x = get_turbine_names(), y = AEP.iloc[2,:], name = '2014', marker = {'color': AEP.iloc[2,:], 'colorscale': 'RdBu'}), row = 2, col = 1) fig.add_trace(go.Bar(x = get_turbine_names(), y = AEP.iloc[3,:], name = '2015', marker = {'color': AEP.iloc[3,:], 'colorscale': 'RdBu'}), row = 2, col = 2) fig.add_trace(go.Bar(x = get_turbine_names(), y = AEP.iloc[4,:], name = '2016', marker = {'color': AEP.iloc[4,:], 'colorscale': 'RdBu'}), row = 3, col = 1) fig.add_trace(go.Bar(x = get_turbine_names(), y = AEP.iloc[5,:], name = '2017', marker = {'color': AEP.iloc[5,:], 'colorscale': 'RdBu'}), row = 3, col = 2) fig.add_trace(go.Bar(x = get_turbine_names(), y = AEP.iloc[6,:], name = '2018', marker = {'color': AEP.iloc[6,:], 'colorscale': 'RdBu'}), row = 4, col = 1) fig.add_trace(go.Bar(x = get_turbine_names(), y = AEP.iloc[7,:], name = '2019 (Jan to Jun)', marker = {'color': AEP.iloc[7,:], 'colorscale': 'RdBu'}), row = 4, col = 2) # editing the yaxes in each subplot fig.update_yaxes(title_text='AEP [GWh] in 2012', title_font = dict(size = 14), row=1, col=1, range = [0,8.2]) fig.update_yaxes(title_text='AEP [GWh] in 2013', title_font = dict(size = 14), row=1, col=2, range = [0,8.2]) fig.update_yaxes(title_text='AEP [GWh] in 2014', title_font = dict(size = 14), row=2, col=1, range = [0,8.2]) fig.update_yaxes(title_text='AEP [GWh] in 2015', title_font = dict(size = 14), row=2, col=2, range = [0,8.2]) fig.update_yaxes(title_text='AEP [GWh] in 2016', title_font = dict(size = 14), row=3, col=1, range = [0,8.2]) fig.update_yaxes(title_text='AEP [GWh] in 2017', title_font = dict(size = 14), row=3, col=2, range = [0,8.2]) fig.update_yaxes(title_text='AEP [GWh] in 2018', title_font = dict(size = 14), row=4, col=1, range = [0,8.2]) fig.update_yaxes(title_text='AEP [GWh] in 2019', title_font = dict(size = 14), row=4, col=2, range = [0,8.2]) fig.update_layout( title = 'AEP per turbine', xaxis_tickfont_size = 14, barmode='group', bargap=0.15, # gap between bars of adjacent location coordinates. bargroupgap=0.1, # gap between bars of the same location coordinate. showlegend = False, plot_bgcolor ='rgb(160,160,160)', ) fig.write_image(get_fig_dir() + 'AEP_perTurbine.png', width = 800, height = 800) fig.show(renderer = 'png', width = 800, height = 1000) return plot(fig, auto_open = True)

! Of course I never doubted your plotly.py proficiency ;-). One of the reasons the coloraxis is not so clear is that it’s not well documented. Anyway, future readers will have the two solutions! Thank you so much for your amazing contribution to the community!