You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly Python柱状图切换stack/group按钮无响应问题修复

Plotly柱状图切换按钮失效修复方案

你的代码中点击按钮后柱状图的分组/堆叠样式不更新,问题出在按钮的方法调用和参数格式不匹配,同时参数值大小写不符合Plotly要求。以下是修复后的完整代码:

import plotly.graph_objects as go
import pandas as pd

# 构造示例数据(对应你提供的DataFrame)
data = {
    'Sales': [674.3, 634.32, 338.17, 1209.9],
    'Expenses': [529.47, 498.08, 265.54, 949.99],
    'Operating Profit': [144.83, 136.24, 72.63, 259.86],
    'Net Profit': [48.81, 45.91, 24.48, 87.57]
}
temp_df = pd.DataFrame(data, index=['q1', 'q2', 'q3', 'q4'])

fig1 = go.Figure()

x  = temp_df.index
y1 = temp_df['Sales'].astype(float) # Sales Column
y2 = temp_df['Expenses'].astype(float) # Expenses Column
y3 = temp_df['Operating Profit'].astype(float) # Operating Profit Column
y4 = temp_df['Net Profit'].astype(float) # Net Profit Column

fig1.add_trace(go.Bar(x=x, y=y1, name='Sales', marker_color ="#4287f5"))
fig1.add_trace(go.Bar(x=x, y=y2, name='Expenses', marker_color ="#f06969"))
fig1.add_trace(go.Bar(x=x, y=y3, name='Operating Profit', marker_color ="#469984"))
fig1.add_trace(go.Bar(x=x, y=y4, name='Net Profit', marker_color ="#53c24f"))

fig1.update_layout(
        title='<b>QoQ Performance</b>',
        xaxis_title='Quarter',
        yaxis_title='Rupees in Cr.')

updatemenus=[
        dict(
            type = "buttons",
            buttons=list([
                dict(
                    args=[{'barmode': 'group'}],
                    label="Group",
                    method="relayout",
                ),
                dict(
                    args=[{'barmode': 'stack'}],
                    label="Stack",
                    method="relayout"
                )
            ]) 
        ),
    ]

fig1.update_layout(updatemenus=updatemenus)
fig1.show()

关键修改说明:

  • 方法替换:将按钮的method从"update"改为"relayout",因为我们只需要修改图表布局中的barmode属性,relayout是专门用于更新布局的方法,更高效且匹配需求。
  • 参数修正:
    1. 将args改为字典格式[{'barmode': 'group'}],符合relayout方法的参数要求。
    2. 将参数值'Group'改为小写的'group',Plotly的barmode合法取值为小写的group和stack,大写会被识别为无效值。
  • 顺便修正了原代码中注释的错误(把Operating Profit和Net Profit的注释误写为Expenses)。

内容的提问来源于stack exchange,提问作者RSW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 11:37:22