Plotly (python):如何在条形图中添加多个文本标签



在下面的代码中,我有一个具有4列('data', 'valor', ' name '和'total')的数据框。变量'text'将列' name '设置为标签。现在我需要对列"total"做同样的事情,我需要将列"total"设置为一个标签。但我不知道怎么做。

def bar_detalhado(dframe):
import plotly.express as px
import plotly
df = dframe
fig = px.bar(df, x="data", y="valor", text="nome",
color='tipo', barmode='group',
height=400)
fig.show()

像是…:

def bar_detalhado(dframe):
import plotly.express as px
import plotly

df = dframe
fig = px.bar(df, x="data", y="valor", text="nome", text2="total",
color='tipo', barmode='group',
height=400)
fig.show()

文档指出不能指定多个列,但可以传递一个字符串列表。

下面是一个独立的小示例,它在列表推导中使用df.itertuples为每个栏创建一个文本字符串。

import plotly.express as px
import pandas as pd
df = pd.DataFrame(dict(data=[1, 2, 3], valor=[5, 6, 7], nome=[8, 9, 10]))
df['total'] = df.sum(axis=1)
df

def bar_detalhado(dframe):
fig = px.bar(
dframe, 
x="data", 
y="valor", 
text=[f"n={row[2]}  v={row[1]}  t={row[3]}" for row in df.itertuples()],
)
fig.show()
bar_detalhado(df)

最新更新