因此,我想用Python 3.9中的Plotly.express创建一个条形图。 我用熊猫创建了下表:
idx cat1 cat2 cat3 cat4
0 A 0.98 0.93 0.550 1.00
1 B 0.92 0.80 0.865 1.00
2 C 0.91 0.87 0.955 0.96
我有以下代码:
# df is the pandas table
fig = px.bar(df,
x = 'idx',
y=['cat1', 'cat2', 'cat3', 'cat4']
)
colors = ['#dc1a22', ] * 12
colors[2] = '#000000'
fig.update_traces(marker_color = colors, marker_line_color='rgb(8,48,107)',
marker_line_width=1.5, opacity=0.6)
fig.update_layout(barmode='group')
我想给#dc1a22中所有组中的所有条涂上颜色,第三个位置的条除外(颜色[2])
现实情况是,第一组和第二组中的所有酒吧都是dc1a22,第三组中的所有酒吧都是000000
是否有可能为分组图表中的单个条形图上色
这可能很重要:在未来,我会根据条形图的值为其上色
(0-0.5->;红色,0.5-0.9->;黄色,0.9-1->;绿色)
您可以做的是使用循环一次添加一个跟踪,并将颜色列表和对应列名列表传递给每个
go.bar
对象。不幸的是,需要重置条形图的默认宽度,并且在分组模式下,条形图以overlay
模式打印(这意味着如果在不更改偏移的情况下设置每个条形图的宽度,它们将重叠)因此,还需要调整偏移,以确保条在x轴上围绕每个idx类别精确居中。如果钢筋宽度为0.2,则将四根钢筋的偏移量分别设置为[-0.4,-0.2,0,0.2]即可。这可能适用于任何宽度
相关问题 更多 >
编程相关推荐