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

浏览: 3410

前言


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

往期从零开始学Python系列:

从零开始学Python--数据类型及结构

从零开始学Python--数值计算及正则表达式

Python自定义函数的参数解读

从零开始学Python【3】--控制流与自定义函数

从零开始学Python【4】--numpy

从零开始学Python【4】--pandas(序列部分)

从零开始学Python【6】--pandas(数据框部分01)

从零开始学Python【7】--pandas(数据框部分02)

从零开始学Python【8】--pandas(数据框部分03)

从零开始学Python【9】--pandas(数据框部分04)

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

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

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

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

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

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

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

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

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

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


函数语法及参数


       在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月中央财政收入的主要来源情况:

image.png

树地图的绘制


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

# 导入第三方包
import matplotlib.pyplot as plt
import 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

推荐 1
本文由 每天进步一点点2015 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册