Plotly:如何显示旭日图的图例?

Plotly: How to display legends for a sunburst diagram?

我正在尝试在我的阴谋森伯斯特情节旁边显示图例。

旭日形示例:

df = px.data.tips()
fig = px.sunburst(df, path=['day', 'time'], values='total_bill')
fig.show()

理想情况下,我想在黑色矩形内显示内部或外部值以及各自的颜色。

我习惯于在 matplotlib () 中手动编辑图例,但我找不到在 plotly 中执行此操作的方法。

我也尝试过添加注释,但这样做也会添加 X 轴和 Y 轴。

显示外部值没有多大意义,因为 Dinner 有三种不同的颜色。但是您 可以 使用注释在旭日图中包含内部值。你是对的,这会触发轴和背景,但我们总是可以再次删除它们。下面的代码片段将产生这个数字:

完整代码:

import plotly.express as px

df = px.data.tips()
fig = px.sunburst(df, path=['day', 'time'], values='total_bill')
D = df['day'].unique()

colors=['#EF553B',
         '#636EFA',
         '#00CC96',
         '#AB63FA',
         '#FFA15A',
         '#19D3F3',
         '#FF6692',
         '#B6E880',
         '#FF97FF',
         '#FECB52']

for i, m in enumerate(D):
    fig.add_annotation(dict(font=dict(color=colors[i],size=14),
                                        x=0.8,
                                        y=1-(i/10),
                                        showarrow=False,
                                        text=D[i],
                                        textangle=0,
                                        xanchor='left',
                                        xref="paper",
                                        yref="paper"))

fig.update_layout(
    paper_bgcolor='rgba(0,0,0,0)',
    plot_bgcolor='rgba(0,0,0,0)'
)

fig.update_xaxes(tickfont=dict(color='rgba(0,0,0,0)'))
fig.update_yaxes(tickfont=dict(color='rgba(0,0,0,0)'))

fig.show()