首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在树状图上添加%信息?

如何在树状图上添加%信息?
EN

Stack Overflow用户
提问于 2019-09-12 21:34:12
回答 1查看 3K关注 0票数 5

我正在绘制一个树状图,并想知道如何绘制一个树类的相对百分比,即

A组=100

B群=30

地块C =50

地块D =20

然后,在情节中添加:

A组“50%”

B组为“15%”

等在它的“X组”标签旁边。考虑到这段代码,我该怎么做?

代码语言:javascript
复制
!pip install squarify
import squarify 
df = pd.DataFrame({'customers':[8,3,4,2], 'cluster':["group A", "group B", "group C", "group D"] })
squarify.plot(sizes=df['customers'], label=df['cluster'], alpha=.8 )
plt.axis('off')
plt.show();

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-13 08:22:07

假设所有值之和为100%,则可以更改标签,然后从dataframe绘制新创建的标签或附加于描述符的标记。

只打印百分比值:

代码语言:javascript
复制
lbl = [str('{:5.2f}'.format(i/df['customers'].sum()*100)) + "%" for i in df['customers']]
squarify.plot(sizes=df['customers'], label=lbl, alpha=.8 )

组合描述和百分比值

代码语言:javascript
复制
perc = [str('{:5.2f}'.format(i/df['customers'].sum()*100)) + "%" for i in df['customers']]
lbl = [el[0] + " = " + el[1] for el in zip(df['cluster'], perc)]
squarify.plot(sizes=df['customers'], label=lbl, alpha=.8 )

更新2021-02-01

从pythonV3.6开始,格式化字符串文字的首选方法是f-strings。大多数情况下,f-strings更紧凑,更易于阅读。使用f-strings进行描述和百分比信息组合的示例如下所示

代码语言:javascript
复制
perc = [f'{i/df["customers"].sum()*100:5.2f}%' for i in df['customers']]
lbl = [f'{el[0]} = {el[1]}' for el in zip(df['cluster'], perc)]
squarify.plot(sizes=df['customers'], label=lbl, alpha=.8 )

无论哪种方式,最终结果都将类似于以下内容:

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57914782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档