在下面的代码中,我有一个具有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)