我正在尝试使用 plotly 创建双条堆积条形图。
我找到了这段代码:
from plotly import graph_objects as go
data = {
"original":[15, 23, 32, 10, 23],
"model_1": [4, 8, 18, 6, 0],
"model_2": [11, 18, 18, 0, 20],
"labels": [
"feature",
"question",
"bug",
"documentation",
"maintenance"
]
}
fig = go.Figure(
data=[
go.Bar(
name="Original",
x=data["labels"],
y=data["original"],
offsetgroup=0,
),
go.Bar(
name="Model 1",
x=data["labels"],
y=data["model_1"],
offsetgroup=1,
),
go.Bar(
name="Model 2",
x=data["labels"],
y=data["model_2"],
offsetgroup=1,
base=data["model_1"],
)
],
layout=go.Layout(
title="Issue Types - Original and Models",
yaxis_title="Number of Issues"
)
)
资料来源:https ://dev.to/fronkan/stacked-and-grouped-bar-charts-using-plotly-python-a4p
这可行,但如果可能的话,我需要更进一步。我需要各种模型能够出现在每组条形的两侧,因为我添加了另一个参数(左侧为“是”,右侧为“否”)。在示例中,蓝色始终位于左侧条形,而橙色和/或绿色始终位于右侧。我正在寻找一种方法,以便任何一种颜色都可以出现在一组条形的左侧和右侧,但具有不同的值。例如,在示例中,特征的蓝色条形数量为 15,但在特征的右侧,蓝色的值可能为 5。
您可以使用动态堆叠,结合计算的基值和一致的颜色编码,保持精确的 10 个条形(5 个类别 × 2 条边),同时支持每个条形的可变组件组合。另请查看此堆叠 + 分组条形图