我正在处理一个包含 4 列的数据集
日期 | 类别 | 子类别 | 开支 |
---|
我想创建一个仪表板,显示所选类别及其子类别的费用与日期。我通过以下方式得到它
cats = df.Category.unique()
tags={key: [] for key in cats}
for cat in cats:
tags[cat] = df[df.Category==cat].Subcat.unique()
@callback(Output(graph,"figure"),Input(dropdown,"value"))
def update_bar_chart(cat):
mask = df['Category']==cat
fig = px.bar(df[mask].groupby(df.Date)['Expense amount'].sum())
for i, tag in enumerate(tags[cat]):
mask = df['Subcat']==tag
fig.add_traces(list(px.scatter(df[mask].groupby(df.Date)['Expense amount'].sum()).select_traces()))
return fig
但是它们都呈现相同的颜色。如何设置每条迹线的线条颜色?
将
color
参数传递给plotlyexpress 函数,Plotlyexpress 图形可以具有明显的颜色。
参考:https://plotly.com/python/bar-charts/#colored-bars
您可以尝试将回调修改为如下所示,以根据
Date
(x 轴)对条形图轨迹进行明显的着色。
@callback(Output(graph,"figure"),Input(dropdown,"value"))
def update_bar_chart(cat):
mask = df['Category']==cat
fig = px.bar(df[mask].groupby(df.Date)['Expense amount'].sum(), color='Date')
for i, tag in enumerate(tags[cat]):
mask = df['Subcat']==tag
fig.add_traces(list(px.scatter(df[mask].groupby(df.Date)['Expense amount'].sum()).select_traces()))
return fig