首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中创建树状图

在python中创建树状图
EN

Stack Overflow用户
提问于 2022-02-10 12:10:15
回答 1查看 69关注 0票数 0

我有一个数据框架,我想用它来创建一个树状图,类似于附图中的一个。下面是生成数据的代码,后面是我尝试过的代码,但是树状图没有给出想要的结果。

生成数据的代码:

代码语言:javascript
复制
import pandas as pd

data = {'ID': ['C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9','C10', 'C11', 'C12','C13', 'C14'],
        'A': [1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 2], 
        'B':[3, 3, 1, 1, 1, 1, 1, 2, 3, 3, 2, 2, 2, 2],
        'Cat': ['UP','UP','GONE','GONE','GONE','GONE','GONE','GONE','UP','UP','GONE','MID','MID','MID']
        }

df = pd.DataFrame(data)

print (df)

上面创建底层数据,下面将创建计数--上述数据的聚合版本。这种聚合背后的逻辑是:

代码语言:javascript
复制
If A = 2 & B = 2 then Cat = MID ... 
If A = 2 & B = 1 then Cat = GONE ... 
If A = 1 & B = 1 then Cat = GONE ... 
If A = 1 & B = 2 then Cat = GONE ... 
If A = 2 OR A = 1 & B = 3 then Cat = UP

根据基础资料,结果为UP 4例,中间3例,消失7例。

代码语言:javascript
复制
data_agg = {'Cat': ['UP', 'GONE', 'MID'],
        'Count': [4, 7, 3] 
        }

df_agg = pd.DataFrame(data_agg)

print (df_agg)

我尝试使用squarify来创建我想要的图表,但是它没有给出所期望的结果。我使用的squarify代码如下:

代码语言:javascript
复制
colors=['red','green','blue']
squarify.plot(df_agg['Count'], label=df_agg['Cat'], color=colors, alpha=0.5)

squarify.plot(df_agg['Count'], label=df_agg['Cat'], color=colors, alpha=0.5)

我需要创建一个图表,如最后的图片和任何帮助,在创建这将是非常感谢。目前我得到的结果是

所需的图表结果是这样的,在Axis上显示变量A和B:

EN

回答 1

Stack Overflow用户

发布于 2022-02-10 12:24:09

我认为squarify不是您想要的工具,因为它只允许在固定的空间中按大小比较数量(这里是df_agg‘’Count‘)。

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

https://stackoverflow.com/questions/71064875

复制
相关文章

相似问题

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