python-3.x - Plotly(python):如何在条形图中添加多个文本标签
问题描述
在下面的代码中,我有一个包含 4 列('data'、'valor'、'nome' 和 'total')的数据框。变量 'text' 将列 'nome' 设置为标签。现在我需要对“总计”列做同样的事情,我也需要将“总计”列设置为标签。但我不知道怎么做。
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)
推荐阅读
- java - 为什么 UDP 接收缓冲区大小(rx_queue)没有增加?
- gridview - Yii2:如何将 All 选项添加到 GridView 过滤器?
- docker - 如何在容器内使用 docker-runc?
- php - 在奏鸣曲 configureFormFileds 方法中将自定义评级星添加到表单字段
- ocaml - 如何捕获 js_of_ocaml 顶层的标准输出
- c# - C# Image.FromFile“正在使用”解决方法?
- ios - 如何从 info.plist 中获取和使用 UIInterfaceOrientation 项目?
- python - 在 Pandas 中添加一个向量/随机数列
- haskell - 我们可以在 fct 的情况下进行模式匹配吗?
- bash - 如何根据日期获取 s3 存储桶中的所有对象?