从零开始学Python【19】--matplotlib(树地图)

Python可视化往期回顾

从零开始学Python【18】--matplotlib(热力图)

从零开始学Python【17】--matplotlib(面积图)

从零开始学Python【16】--matplotlib(雷达图)

从零开始学Python【15】--matplotlib(散点图)

从零开始学Python【14】--matplotlib(折线图)

从零开始学Python【13】--matplotlib(直方图)

从零开始学Python【12】--matplotlib(箱线图)

从零开始学Python【11】--matplotlib(饼图)

从零开始学Python【10】--matplotlib(条形图)

前言


       用可视化的方法来表达离散变量的数值情况,不仅仅可以使用条形图、饼图、热力图,我们还可以借助于树地图来完成。树地图的思想就是通过方块的面积来表示,面积越大,其代表的值就越大,反之亦然。今天要跟大家分享的就是如何通过Ptyhon这个工具,完成树地图的绘制。


函数语法及参数


       在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:关键字参数,与条形图的关键字参数类似,如设置边框色、边框粗细等;


       介绍完了绘图所需要的函数,先来抛一个树地图的效果图,该图反映的是2017年8月中央财政收入的主要来源情况:

从零开始学Python【19】--matplotlib(树地图)_第1张图片

树地图的绘制


       图中的数据来自《中华人民共和国财政部》官网,具体可以从2017年8月财政收支情况(http://gks.mof.gov.cn/zhengfuxinxi/tongjishuju/201709/t20170911_2695830.html)查看。

# 导入第三方包import matplotlib.pyplot as pltimport squarify#中文及负号处理办法plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'plt.rcParams['axes.unicode_minus'] = False# 创建数据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()

       通过上面的这些绘图语句和美化语句,就可以得到一个形象不错的树地图了。是不是很简单呢,如果你的工作中需要绘制离散变量的可视化,也可以考虑考虑这张图呢~简单明了形象佳!

结语


       OK,今天树地图的绘制,我们就分享到这里,如果你有问题,欢迎在公众号的留言区域表达你的疑问。同时,也欢迎各位朋友继续转发与分享文中的内容,让跟多的人学习和操作。最后,本文相关的Python脚本和PDF版本已存放到百度云盘,可以通过下面的链接获取

链接: https://pan.baidu.com/s/1miP2tjM 密码: m4f7


更多关于R语言和Python的学习干货可关注:

每天进步一点点2015

你可能感兴趣的:(从零开始学Python【19】--matplotlib(树地图))