matplotlib【7】--树地图

用可视化的方法来表达离散变量的数值情况,不仅仅可以使用条形图、饼图、热力图,我们还可以借助于树地图来完成。树地图的思想就是通过方块的面积来表示,面积越大,其代表的值就越大,反之亦然。
在Python中,可以借助于squarify包来绘制,即squarify.plot函数。首先,我们来看一下这个函数的语法及参数含义:

squarify.plot(sizes, 
            norm_x=100, 
            norm_y=100, 
            color=None, 
            label=None, 
            value=None, 
            alpha,
            **kwargs)

sizes:指定离散变量各水平对应的数值,即反映树地图子块的面积大小;

norm_x:默认将x轴的范围限定在0-100之内;

norm_y:默认将y轴的范围限定在0-100之内;

color:自定义设置树地图子块的填充色;

label:为每个子块指定标签;

value:为每个子块添加数值大小的标签;

alpha:设置填充色的透明度;

**kwargs:关键字参数,与条形图的关键字参数类似,如设置边框色、边框粗细等;

#树立图的思想就是通过方块的面积来表示,面积越大,其代表的值就越大
#python中,借助squarify包来绘制,即aquarify.plot函数

#导入包
import matplotlib.pyplot as plt
import squarify

#中文和负号处理办法
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
plt.rcParams['axes.unicode_minus']=False
#设置警告消除
import warnings
warnings.filterwarnings('ignore')


# 创建数据
name = ['国内增值税','国内消费税','企业所得税','个人所得税',
        '进口增值税、消费税','出口退税','城市维护建设税',
        '车辆购置税','印花税','资源税','土地和房税','车船税烟叶税等']
income = [3908,856,801,868,1361,1042,320,291,175,111,414,63]
colors = ['steelblue','#9999ff','red','indianred',
          'green','yellow','orange']
# 绘图
plot=squarify.plot(
    sizes=income,#指定绘图数据
    label=name,#标签
    color=colors,#指定自定义颜色
    alpha=0.6,#指定透明度
    value=income,#添加数值标签
    edgecolor='white',#设置边界框白色
    linewidth=3#设置边框宽度为3
)
#设置标签大小
plt.rc('font',size=8)
#设置标题大小
plot.set_title('2017年8月中央财政收支情况',fontdict={'fontsize':15})

#去除坐标轴
plt.axis('off')
#去除上边框和右边框刻度
plt.tick_params(top='off',right='off')

plt.show()

matplotlib【7】--树地图_第1张图片

你可能感兴趣的:(matplotlib)