gpt4 book ai didi

python - Plotly:如何使用 go.Bar 将数据标签添加到堆叠条形图?

转载 作者:行者123 更新时间:2023-12-05 03:44:20 27 4
gpt4 key购买 nike

我有一个堆叠分组条形图,我想获取图表上每个条形的每个部分的数据标签。

我的图表制作如下:

stackData = {
"Leaders Now":[.52, .57, .38, .48],
"Bottom Now": [.20, .27, .19, .18],
# Use differece
"Leaders Plan": [.17, .06, .12, .16],
"Bottom Plan":[.15,.12,.09,.12],
"labels": [
"Revenue",
"Cost",
"Quality",
"Flexibility"
]
}

fig3 = go.Figure(
data=[
go.Bar(
name="Leaders Now",
x=stackData["labels"],
y=stackData["Leaders Now"],
offsetgroup=0,
marker_color = '#024a70'
),
go.Bar(
name="Leaders Plan",
x=stackData["labels"],
y=stackData["Leaders Plan"],
offsetgroup=0,
base=stackData["Leaders Now"],
marker_color = '#051c2c'
),
go.Bar(
name="Bottom Now",
x=stackData["labels"],
y=stackData["Bottom Now"],
offsetgroup=1,
marker_color = '#abe5f0'
),
go.Bar(
name="Bottom Plan",
x=stackData["labels"],
y=stackData["Bottom Plan"],
offsetgroup=1,
base=stackData["Bottom Now"],
marker_color = '#74d0f0'
)
],
layout=go.Layout(
title="Use Cases",
yaxis_title="% of Companies"
)
)
fig3.show()

enter image description here

我只想要条形图上每个项目的百分比值,作为数据标签。这对于 plotly express 来说很容易,但不确定为什么它不能使用诸如

fig3.update_traces(texttemplate='%{text:.0%}',textposition='auto')

谢谢!

最佳答案

您只需为每个 go.Bar 指定 text 属性,例如:

go.Bar(
name="Leaders Now",
x=stackData["labels"],
y=stackData["Leaders Now"],
offsetgroup=0,
marker_color = '#024a70',
text = stackData["Leaders Now"]
)

plotly :

enter image description here

完整代码:

import plotly.graph_objects as go
import pandas as pd

stackData = {
"Leaders Now":[.52, .57, .38, .48],
"Bottom Now": [.20, .27, .19, .18],
# Use differece
"Leaders Plan": [.17, .06, .12, .16],
"Bottom Plan":[.15,.12,.09,.12],
"labels": [
"Revenue",
"Cost",
"Quality",
"Flexibility"
]
}

# stackData = pd.DataFrame(stackData)

fig3 = go.Figure(
data=[
go.Bar(
name="Leaders Now",
x=stackData["labels"],
y=stackData["Leaders Now"],
offsetgroup=0,
marker_color = '#024a70',
text = stackData["Leaders Now"]
),
go.Bar(
name="Leaders Plan",
x=stackData["labels"],
y=stackData["Leaders Plan"],
offsetgroup=0,
base=stackData["Leaders Now"],
marker_color = '#051c2c',
text= stackData["Leaders Plan"]
),
go.Bar(
name="Bottom Now",
x=stackData["labels"],
y=stackData["Bottom Now"],
offsetgroup=1,
marker_color = '#abe5f0',
text = stackData["Bottom Now"]
),
go.Bar(
name="Bottom Plan",
x=stackData["labels"],
y=stackData["Bottom Plan"],
offsetgroup=1,
base=stackData["Bottom Now"],
marker_color = '#74d0f0',
text = stackData["Bottom Plan"]
)
],
layout=go.Layout(
title="Use Cases",
yaxis_title="% of Companies"
)
)

f3 = fig3.full_figure_for_development(warn=False)
fig3.update_traces(texttemplate='%{text:.2%}', textposition='inside')

fig3.show()

关于python - Plotly:如何使用 go.Bar 将数据标签添加到堆叠条形图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66496583/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com