plotly python 雷达图标签的自定义颜色

Custom color for plotly python radar chart labels

提问人:Atakan 提问时间:11/9/2023 更新时间:11/10/2023 访问量:50

问:

我想使用 fig.update_polars(angularaxis_color=color) 或 fig.update_polars(angularaxis=dict(color=color)) 用label_color为每个label_column着色,但我不能。

如何将每个column_label的颜色与label_color的颜色相同?我希望 aa 写成粉红色,bb 写成蓝色,cc 写成粉红色,dd 写成蓝色。

color_palette = {'Target': 'red', 'Current': '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))
    
fig.show()

enter image description here

python plotly plotly-dash plotly-python 雷达图

评论

0赞 r-beginners 11/9/2023
我不认为个别颜色可以改变。如果要更改默认值,可以使用以下代码。fig.update_layout(polar = dict(angularaxis=dict(color='pink')))

答:

0赞 russhoppa 11/10/2023 #1

是的,只需通过 更新轴标签的颜色。但这会改变该迹线的所有轴标签的颜色,因此,如果要使用两种不同的颜色,则必须使用两条不同的迹线绘制图表,每条迹线都指定其轴标签颜色。fig.layout.polar.angularaxis.color

import plotly.express as px
import pandas as pd

color_palette = {'Target': 'red', 'Current': 'blue'}
answers_avg = pd.DataFrame([
    dict(label_column='aa', label_color='pink', group='Current', value=3.),
    dict(label_column='aa', label_color='pink', group='Target', value=4.538462),
    dict(label_column='bb', label_color='blue', group='Current', value=2.818182),
    dict(label_column='bb', label_color='blue', group='Target', value=4.5),
    dict(label_column='cc', label_color='pink', group='Current', value=3.230769),
    dict(label_column='cc', label_color='pink', group='Target', value=4.25),
    dict(label_column='dd', label_color='blue', group='Current', value=2.923077),
    dict(label_column='dd', label_color='blue', group='Target', value=4.583333),
])

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))
    
fig.layout.polar.angularaxis.color = 'blue'    
fig.show()

enter image description here