首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用squarify.plot在标签上显示多列值

使用squarify.plot在标签上显示多列值
EN

Stack Overflow用户
提问于 2021-04-01 00:42:30
回答 1查看 500关注 0票数 1

我有一个数据,我想用squarify绘制一幅树图。我想通过编辑country_name参数在图表上显示labelscounts,但似乎只有一个值。

示例数据

代码语言:javascript
复制
import squarify
import pandas as pd
from matplotlib import pyplot as plt
d = {'country_name':['USA', 'UK', 'Germany'], 'counts':[100, 200, 300]}
dd = pd.DataFrame(data=d)
代码语言:javascript
复制
fig = plt.gcf()
ax = fig.add_subplot()
fig.set_size_inches(16, 4.5)
norm = matplotlib.colors.Normalize(vmin=min(dd.counts), vmax=max(dd.counts))
colors = [matplotlib.cm.Blues(norm(value)) for value in dd.counts]
squarify.plot(label=dd.country_name, sizes=dd.counts, alpha=.7, color=colors)
plt.axis('off')
plt.show()

预期的输出将同时包含countscountry_name

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-01 01:25:07

您可以通过同时遍历两列并组合组合字符串来创建标签列表。例如:

代码语言:javascript
复制
import squarify
import pandas as pd
from matplotlib import pyplot as plt
import matplotlib

d = {'country_name': ['USA', 'UK', 'Germany'], 'counts': [100, 200, 300]}
dd = pd.DataFrame(data=d)
labels = [f'{country}\n{count}' for country, count in zip(dd.country_name, dd.counts)]
fig = plt.gcf()
ax = fig.add_subplot()
fig.set_size_inches(16, 4.5)
norm = matplotlib.colors.Normalize(vmin=min(dd.counts), vmax=max(dd.counts))
colors = [matplotlib.cm.Blues(norm(value)) for value in dd.counts]
squarify.plot(label=labels, sizes=dd.counts, alpha=.7, color=colors)
plt.axis('off')
plt.show()

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

https://stackoverflow.com/questions/66897045

复制
相关文章

相似问题

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