我正在尝试根据费用类别的下拉菜单过滤费用的曲线图。由于并非所有费用类型都每月发生,我希望图表根据所选类别显示适当的月份和费用金额。也就是说,选择“食品”应在第9个月生成一个值为5、第10个月为2的折线图,而选择“气体”将在第9个月生成一个值为1的单点
我对python相当陌生,我不确定到底是什么不起作用。每个按钮都具有正确关联的x值、y值和类别标签,但它们不会过滤plotly对象中的任何数据
我以前没有问过任何问题,所以如果我遗漏了什么,请告诉我,我可以提供更多信息。我有一个下面的reprex,我真的很感谢一些帮助。谢谢
import plotly.graph_objects as go
import pandas as pd
budget = pd.DataFrame({"month":[9,9,10,10],
"year":[2020,2021,2020,2021],
"expense":[5,1,4,2],
"category":['groceries', 'gas', 'utilities', 'groceries']})
budget_fig = go.Figure()
budget_fig.add_trace(go.Scatter(x=budget.month, y=budget.expense))
budget_update_menu = []
budget_buttons = []
for cat in budget['category'].unique():
budget_buttons.append(dict(method='update',
label=cat,
args=[{
'x': budget[budget.category == cat].month.values,
'y': budget[budget.category == cat].expense.values
}])
)
budget_menu = dict()
budget_update_menu.append(budget_menu)
budget_update_menu[0]['buttons']=budget_buttons
budget_update_menu[0]['direction']='down'
budget_update_menu[0]['showactive']=True
budget_fig.update_layout(updatemenus = budget_update_menu)
相关问题 更多 >
编程相关推荐