问题描述
我正在堆叠栏中显示单个值。我还喜欢在顶部显示每个堆叠条的总数。可以吗?
我的代码:
df = pd.DataFrame({'Make':['Mercedes','BMW','Mercedes','Chrysler','Mercedes'],'Dimension':['Styling','Styling','Price','MPG','MPG'],'Country':['USA','USA','Germany','England','Poland','Italy','USA'],'LowValue':['64','61','70','65','59','68','63','57','58','55','69','61']})
df_make = df.groupby(['Make','Dimension']).count()[['LowValue']].reset_index()
fig = px.bar(
data_frame=df_make,x='Make',y="LowValue",color="LowValue",text="LowValue",)
fig.update_traces(textposition='inside')
fig.show()
解决方法
据我所知,没有办法直接做到这一点。但您始终可以使用 fig.add_annotation()
进行如下设置:
for i,t in enumerate(totals):
fig.add_annotation(x=x_uniq[i],y = t,text = str(t),showarrow = False,yshift = 12,font=dict(family="Courier New,monospace",size=18,color="firebrick"
)
)
其中 x_uniq
是图形 x 值 ['BMW','Chrysler','Mercedes']
的唯一出现次数 ['BMW','BMW','Mercedes','Mercedes']
,totals
是图形 y 值 {{1} 的相应部分总和} 映射到 x 值。下面的完整片段包含有关如何获取这些值并生成此图的所有详细信息:
完整代码:
[1,1,2,3,2]