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
相关产品推荐
相关产品推荐

