首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试为plotly (python)中的每个条形图创建统一的色标

尝试为plotly (python)中的每个条形图创建统一的色标
EN

Stack Overflow用户
提问于 2019-12-09 23:44:26
回答 1查看 201关注 0票数 0

我创建了一个图表,其中包含8个子图,分别对应于一个农场中每个风力涡轮机每年的发电量。每个子图对应于不同的运行年份。我设法将一个很好的色标应用于每个子图,但每个色标都有一个不同的范围(基于每个子图中的数据)。

我想制作一个“全局”色标,每个图中的值对应于固定的颜色。如果您的建议,我将不胜感激。

代码语言:javascript
复制
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])

    # LAYOUT
    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)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-10 00:18:12

coloraxis参数正是针对这个用例的:https://plot.ly/python/colorscales/#share-color-axis

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59252243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档