如果你想快速解决问题,那就改变吧
method="update"
到
method="relayout"
.
此外,请在下面找到代码的优化版本,
import plotly.graph_objects as go
fig1 = go.Figure()
data = {
'Quarter': ['q1', 'q2', 'q3', 'q4'],
'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)
x = temp_df.index
y1 = temp_df['Sales'].astype(float)
y2 = temp_df['Expenses'].astype(float)
y3 = temp_df['Operating Profit'].astype(float)
y4 = temp_df['Net Profit'].astype(float)
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(
label="Group",
method="relayout",
args=[{"barmode": "group"}]
),
dict(
label="Stack",
method="relayout",
args=[{"barmode": "stack"}]
)
])
)
]
fig1.update_layout(updatemenus=updatemenus)
fig1.show()