You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly Express如何根据条件为堆叠柱状图设置不同颜色

实现方法

我们可以在原有绘图代码的基础上,额外修改Apr_Max对应轨迹的标记颜色属性即可,具体逻辑如下:

  • plotly.express生成的堆叠柱状图中,y参数传入的变量顺序对应轨迹的索引:Apr_Min对应索引为0的轨迹,Apr_Max对应索引为1的轨迹
  • 我们只需要修改Apr_Max对应轨迹的marker颜色列表,将第一个元素(对应第一个公司的Apr_Max色块)设置为绿色,其余元素保留原有红色即可
import plotly.express as px

# 原有绘图代码
fig_page2 = px.bar(data_frame=df_raw,
                 x='Company', y=['Apr_Min', 'Apr_Max'],
                 barmode="stack", labels={'variable': ' ', 'value':'Number'},
                 color_discrete_sequence=['rgb(233,233,233)', 'rgb(255,69,0)'],
                 width=1000, height=400).update_layout(autosize=True,
                                                       title={
                                                            'text': "APR Comparison", 'y':0.9,'x':0.5,
                                                            'xanchor': 'center',
                                                            'yanchor': 'middle'},
                                                       yaxis=dict(title='APR Range', tickformat=',.0%', range=[0,1]),
                                                       paper_bgcolor='rgb(233,233,233)',
                                                       plot_bgcolor='rgb(233,233,233)',
                                                       showlegend=False)

# 新增修改指定色块颜色的代码
company_count = len(df_raw['Company'].unique())
# 先生成全是原红色的颜色列表,再把第一个位置改成绿色
apr_max_colors = ['rgb(255,69,0)'] * company_count
apr_max_colors[0] = 'rgb(0,255,0)' # 此处可以根据需求调整绿色的具体色值
# 给Apr_Max对应的轨迹应用颜色列表
fig_page2.update_traces(marker={'color': apr_max_colors}, selector={'name': 'Apr_Max'})

# 显示图像
fig_page2.show()

如果需要修改其他公司的Apr_Max色块颜色,只需要调整apr_max_colors对应索引位置的色值即可。

内容的提问来源于stack exchange,提问作者shengyou55

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:36:04