如何对齐 go.Bar 中的外部文本?
How to align outside text in a go.Bar?
我想知道是否可以将外部文本右对齐?
拥有这样的东西:
- 已经模拟了一些数据与您的图像中暗示的相似
- 这可以通过将 text 放置在 invisible 栏上来实现,该栏将始终具有相同的总计
- 还注意到您的负值在 xaxis
上也显示为正值
df = pd.DataFrame(
{
"bar": list("ABCDEF"),
"val": [i * 10 ** 3 for i in [55, 50, 40, 36, -5, -10][::-1]],
}
)
df = df.assign(absval=lambda d: d["val"].abs(), color=lambda d: d["val"].lt(0))
df["pad"] = (df["val"].max() + df["val"].max() / 8) - df["absval"]
fig = px.bar(df, y="bar", x="absval", color="color",).add_traces(
px.bar(df, y="bar", x="pad", text="val", color_discrete_sequence=["rgba(0,0,0,0)"])
.update_traces(texttemplate="%{text:,}")
.data
)
fig.update_layout(xaxis_visible=False, showlegend=False)
我想知道是否可以将外部文本右对齐?
拥有这样的东西:
- 已经模拟了一些数据与您的图像中暗示的相似
- 这可以通过将 text 放置在 invisible 栏上来实现,该栏将始终具有相同的总计
- 还注意到您的负值在 xaxis 上也显示为正值
df = pd.DataFrame(
{
"bar": list("ABCDEF"),
"val": [i * 10 ** 3 for i in [55, 50, 40, 36, -5, -10][::-1]],
}
)
df = df.assign(absval=lambda d: d["val"].abs(), color=lambda d: d["val"].lt(0))
df["pad"] = (df["val"].max() + df["val"].max() / 8) - df["absval"]
fig = px.bar(df, y="bar", x="absval", color="color",).add_traces(
px.bar(df, y="bar", x="pad", text="val", color_discrete_sequence=["rgba(0,0,0,0)"])
.update_traces(texttemplate="%{text:,}")
.data
)
fig.update_layout(xaxis_visible=False, showlegend=False)