繁体   English   中英

Plotly go 饼图:更改图例以显示另一列

[英]Plotly go Pie chart: change legend to show another column

我正在使用plotly.graph_objects制作一些数据的饼图。 (我不得不使用.go而不是plotly.express ,因为我希望饼图的方向显示为顺时针方向,而我无法找到在.px中控制的方法。)

切片由count列计算,标签位于Name中,但我希望图例显示Access列中的信息。 在这种情况下,颜色编码意味着某些东西,我想在图例中显示该信息。

有没有办法配置和更改图例显示的列? 我查看了详细的文档Plotly.go Pie objectsFundamentals: Legends with graph objects页面,但无法让它工作。 我发现的唯一方法是将Pie.labels本身更改为Access ,但这当然会改变饼图的形状。

MWE:

import pandas as pd
import plotly.graph_objects as go

test = {'Name': ['Company A','Company B','Company C','Company D','Company E'], 'count': [11,40,18,32,5], 'color':['red','blue','green','red','green'], 'Access':['Closed','Half','Free','Closed','Free']}
df = pd.DataFrame(data=test)
df

具有列名称、计数、颜色、访问权限的数据框

go_fig=go.Figure()
go_fig.add_trace(go.Pie(labels=df['Name'], values=df['count'], marker=dict(colors=df['color']), sort=False, direction='clockwise', textinfo='label+value+percent'))
go_fig

在此处输入图像描述

添加两条迹线,就像重叠两层一样。 新的痕迹会落在顶部,但会关闭新的图例,以便它可以显示下面的旧图例。

fig = go.Figure()
fig.add_trace(go.Pie(labels=df['Access'], values=df['count'], marker_colors=df['color']))
fig.add_trace(go.Pie(labels=df['Name'], values=df['count'], marker_colors=df['color'], showlegend=False))
fig.show()

在此处输入图像描述

知道您无法更改图例可能也很有用,但您可以通过设置text属性并使用textinfo显示它来自定义饼图上显示的文本:

设置与每个扇区关联的文本元素。 如果跟踪文本信息包含“文本”标志,这些元素将在图表上看到...

go_fig=go.Figure()
go_fig.add_trace(go.Pie(labels=df['Access'], values=df['count'], text=df["Name"], textinfo='text+value+percent', marker=dict(colors=df['color']), sort=False, direction='clockwise'))

在此处输入图像描述

更多在文档中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM