Python Plotly - 用按钮重新设计馅饼

问题描述 投票:0回答:0

我正在尝试重新设计一个通过 python django 配置的 plotly pie(标签、标记、值)。但是我无法正确地做到这一点——馅饼没有采用这些值。 我希望通过图例中的新值(不要惊讶:下面的示例具有相同的值)、新颜色和标签来更新饼图。但它的表现就像饼图没有改变或值设置不正确。

我已经查看了实时生成的 javascript 代码,并将其与 plotly 提供的示例进行了比较,但我没有看到任何差异。我的代码目前是:

layout = go.Layout(
    paper_bgcolor='rgba(0,0,0,0)',
    plot_bgcolor='rgba(0,0,0,0)',
    font_color="white",
    legend=dict(
        orientation="v",
        yanchor="bottom",
        y=0.05,
        xanchor="left",
        x=1.05,
        traceorder='reversed'
    ),
    height=300,
    margin=dict(l=2, r=2, t=1, b=1),
)

...

fig = go.Figure(go.Pie(labels=['Automatic', 'Error'], values=[13,11],
                       marker=dict(colors=['#000000','#555555']), sort=False),  layout)
fig.update_traces(textposition='inside',textinfo='value')
fig.update_layout(uniformtext_minsize=12, uniformtext_mode='hide')
button_layer_1_height = 1.08
fig.update_layout(
    updatemenus=[
        dict(
            buttons=list([
                 dict(
                     args=[
                        {'labels': ['test1', 'test2']},
                        {'marker': dict(colors=['#999999', '#222222'])},
                        {'values': [23,1]}
                     ],
                     label='firstButton',
                     method="restyle"
                 ),
                 dict(
                     args=[
                        {'labels': ['test3', 'test4']},
                        {'marker': dict(colors=['#333333', '#666666'])},
                        {'values': [10,14]}
                     ],
                     label='SecondButton',
                     method="restyle",
                 ),
             ]),
            direction="down",
            pad={"r": 10, "t": 10},
            showactive=True,
            x=0.1,
            xanchor="left",
            y=button_layer_1_height,
            yanchor="top",
        ),
    ]
)

导致javascript:

"updatemenus":[{"buttons":[
{"args":[{"labels":["test1", "test2"]},{"marker":{"colors":["#999999", "#222222"]}},{"values":[23,1]}}],"label":"FirstButton","method":"restyle"},
{"args":[{"labels":["test3", "test4"]},{"marker":{"colors":["#333333", "#666666"]}},{"values":[10,14]}}],"label":"SecondButton","method":"restyle"}],
"direction":"down","pad":{"r":10,"t":10},"showactive":true,"x":0.1,"xanchor":"left","y":1.08,"yanchor":"top"}]},                        {"responsive": true}                    )                }; 

在馅饼的初始调用时正确呈现:inital rendering, before button click

但是点击按钮后,它没有更新(饼图的值和颜色没有改变,标签设置为“0”和“1”): After Button click

解决方案

按钮我们错了(忘了方括号,一个括号中的参数):

buttons=list([
                 dict(
                     args=[
                        {'labels': ]['test1', 'test2']],
                        'marker': dict(colors=]['#999999', '#222222']]),
                        'values': ][23,1]]}
                     ],
                     label='firstButton',
                     method="restyle"
                 ),
                 dict(
                     args=[
                        {'labels': [['test3', 'test4']],
                        'marker': dict(colors=[['#333333', '#666666']]),
                        'values': [[10,14]]}
                     ],
                     label='SecondButton',
                     method="restyle",
                 ),
             ]),
             
python python-3.x django plotly plotly-python
© www.soinside.com 2019 - 2024. All rights reserved.