情节:如何显示朝阳图的图例?

时间:2020-07-23 21:56:44

标签: python plotly plotly-python

我正试图在我阴暗的旭日形图旁边显示图例。

旭日示例:

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

enter image description here

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

我习惯于在matplotlib(https://stackoverflow.com/a/53324868/10226862)中手动编辑图例,但是我找不到在plotly中执行此操作的方法。

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

1 个答案:

答案 0 :(得分:2)

显示外部值没有太大意义,因为Dinner具有三种不同的颜色。但是您可以 使用注释在森伯斯特图中包含内部值。没错,这会触发轴和背景,但是我们总是可以再次删除它们。下面的代码段将产生此图:

enter image description here

完整代码:

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()