如何为Python Plotly雷达图的每个轴标签设置自定义颜色?
解决Plotly雷达图轴标签单独设色的问题
要给雷达图的每个轴标签设置对应颜色,你需要直接指定angularaxis.tickfont.color为与标签顺序匹配的颜色列表,而非全局的angularaxis_color。具体修改步骤如下:
- 定义每个标签对应的颜色映射:
label_color_map = {'aa': 'pink', 'bb': 'blue', 'cc': 'pink', 'dd': 'blue'}
- 从数据中提取标签的实际显示顺序(确保与雷达图轴标签顺序一致):
label_order = answers_avg['label_column'].unique().tolist()
- 根据标签顺序生成对应颜色列表:
label_colors = [label_color_map[label] for label in label_order]
- 更新雷达图极轴设置,绑定标签与对应颜色。
完整修改后的代码如下:
color_palette = {'Target': 'red', 'Current': 'blue'} # 定义每个标签的颜色映射 label_color_map = {'aa': 'pink', 'bb': 'blue', 'cc': 'pink', 'dd': 'blue'} fig = px.line_polar(answers_avg, r = 'value', theta = 'label_column', line_close = True, line_dash = 'group') # 设置线条颜色 for group, color in color_palette.items(): fig.update_traces( line=dict(color=color), selector=dict(name=group)) # 设置轴标签颜色 label_order = answers_avg['label_column'].unique().tolist() label_colors = [label_color_map[label] for label in label_order] fig.update_polars( angularaxis=dict( tickfont=dict(color=label_colors) ) ) fig.show()
执行后即可实现aa、cc为粉色,bb、dd为蓝色的轴标签效果。
内容的提问来源于stack exchange,提问作者Atakan
相关产品推荐
相关产品推荐

