如何在 Python Plotly 堆积条形图中显示多个文本和文本位置 完整代码:

问题描述

我正在堆叠栏中显示单个值。我还喜欢在顶部显示每个堆叠条的总数。可以吗?

我的代码

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()

enter image description here

解决方法

据我所知,没有办法直接做到这一点。但您始终可以使用 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 值。下面的完整片段包含有关如何获取这些值并生成此图的所有详细信息:

enter image description here

完整代码:

[1,1,2,3,2]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...