目录
一、原理介绍
树形图常用于对分类变量进行可视化分析,树形图的面积代表了所对应类别的数量,常用于比较各类别在数量上的差异。
二、代码实现
数据来源于上市企业数据,通过绘制树形图,来比较不同行业的企业数量分布差异。
import squarify
from pyforest import *
import warnings
warnings.filterwarnings('ignore')
import numpy as np
import pandas as pd
#读入数据
data=pd.read_csv("F:/data1/class.csv",encoding='gbk')
data.head()
行业名称 | |
---|---|
0 | 金融业 |
1 | 房地产业 |
2 | 制造业 |
3 | 水利、环境和公共设施管理业 |
4 | 房地产业 |
#图片显示中文
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] =False #减号unicode编码
df = data.groupby('行业名称').size().reset_index(name='counts')
labels = df.apply(lambda x: str(x[0]) + "\n (" + str(x[1]) + ")", axis=1)
sizes = df['counts'].values.tolist()
colors = [plt.cm.Spectral(i/float(len(labels))) for i in range(len(labels))]
# 画图
plt.figure(figsize=(12,8), dpi= 80)
squarify.plot(sizes=sizes, label=labels, color=colors, alpha=.8)
plt.title('上市企业行业分布情况')
plt.axis('off')
plt.show()
三、结果解释
从图中可以看出,不同行业的上市企业数量差别明显。其中,制造业的上市企业为多数类,有26339家;教育行业的上市企业数量最少,仅有43家。