【问题标题】:Plotly: How to display legends for a sunburst diagram?Plotly:如何显示旭日形图的图例?
【发布时间】:2020-07-23 21:56:44
【问题描述】:

我正在尝试在我的朝阳图旁边显示图例。

例如旭日形:

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

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

我习惯于在 matplotlib (https://stackoverflow.com/a/53324868/10226862) 中手动编辑图例,但在 plotly 中找不到这样做的方法。

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

【问题讨论】:

  • 您介意告诉我们您想展示什么作为图例吗?
  • 我要显示名称和值。
  • 每个输入的名称和值?
  • 也许你可以用 R 语言 'ggsunburt' 来做。我提到了它here
  • @vestland 它成功了!谢谢。我一直在研究另一种解决方案,在旭日形后面有一个散点图,我隐藏了除图例之外的所有元素。完成后我会分享它。

标签: python plotly plotly-python


【解决方案1】:

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

完整代码:

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

【讨论】:

    猜你喜欢
    • 2020-03-23
    • 2021-09-09
    • 2020-11-14
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 2020-07-22
    • 2021-01-02
    • 1970-01-01
    相关资源
    最近更新 更多