基于Python的乡村振兴数据可视化研究
2021-03-04谢晓伟,陈君艳,郑丽,包琦
谢晓伟,陈君艳,郑丽,包琦
摘要:随着信息革命的深入推进,信息技术与经济社会的交汇融合,引发了数据的迅猛增长,数据已经成了国家基础战略性资源,大数据日渐对经济运行机制、社会生活方式和国家治理能力产生重要影响。如何对已经掌握的数据开展分析,脱去其枯燥的“外衣”,以直观形式呈现成为研究热点。该项目对脱贫人口现状、致贫原因和扶贫资金投入产出情况等数据进行了收集及可视化呈现,精准扶贫档案伴随着精准扶贫工作同步形成,为预防在全面实现脱贫后返贫,巩固脱贫成果并有效衔接乡村振兴战略提供数据支持。
关键词:预防返贫;Matplotlib;可视化技术;Python语言
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2021)34-0034-03
1概述
笔者在开展江苏省泰州市2019年科技支撑计划(社会发展)项目《信息化技术在“精准扶贫”工作中的应用和研究》项目的同时,对于采集的相关数据进行了数据可视化的相关研究,依托Python编程语言以及其强大的第三方库,对枯燥的数据进行分析,让其以图形化方式灵动地呈现在用户面前,让用户更加直观地去理解和分析致贫的原因,有效的控制返贫的风险,为返贫治理提供决策支持,对于其他地区相同领域工作是具有一定借鉴意义的。
2相关技术简介
2.1Python语言
Python作为一门解释型高级动态编程语言,它具有跨平台、开源、免费等众多优点,已经成为最受欢迎的程序设计语言之一。Python是完全面向对象的语言,它的对象包括函数、模块、数字、字符串等,并且完全支持面向对象语言的继承、重载、派生、多态等特性,有益于增强源代码的复用性。Python除了有强大的标准库以外,还有丰富的第三方库,这也确保了Python语言的不断发展,这些第三方库主要包括了Web框架、科学计算、GUI和其他一些方面,可以让使用者基于这些库快速开展工作,本文的研究过程中作者也是用到了很多标准库与第三方库的内容。
2.2 NumPy库
NumPy(Numerical Python)是Python程序设计语言的一个扩展程序库,它支持大量的维度数组与矩阵的运算,运行速度非常快,包括一个强大的N维数组对象 ndarray、广播功能函数、整合C/C++/Fortran 代码的工具以及线性代数、傅里叶变换、随机数生成等功能,因为本文的研究基于大量的数据分析和可视化,因此需要使用NumPy库。
2.3 Matplotlib库
Matplotlib是Python的绘图库,常常与NumPy库一起使用。Matplotlib早期是为了癫痫病人的脑皮层电图相关信号的可视化而研究出来的,它在函数设计上参考了在函数的设计上参考了MATLAB,为Python构建一个Matlab式的绘图接口,因此取名叫作Matplotlib[1]。Matplotlib的图像都位于Figure对象中,使用者利用它可以快速创建海量类型的2D图表和一些基本的3D图表,可根据数据集(DataFrame,Series)自行定义x,y轴,绘制图形,诸如柱状图、密度图、直方图、线形图、散点图等等,能够满足本文研究的大部分需要。
2.4 Pyecharts库
Echarts是百度公司创建,通过Java Script实现的一个可视化的开源库,可以在PC或移动设备上流畅运行,兼容性极高。而Pyecharts是为了与Python 进行对接,能够在 Python中生成独立的网页,展示数据生成图,也可以在flask、django中集成使用。
3基于Python数据可视化实例的实现
项目对于数据的处理通过了三个层次实现,分别是采集层、分析层和展示层。采集层利用笔者建设的精准扶贫信息系统,采用信息化技术对不同应用场景的数据进行采集,按照不同的分析主题分区进行存储,并进行了简单的数据清洗;分析层对于采集层所采集的数据,要按照不同的分析主题进行进一步的数据清洗和分析,在这里笔者采用了Python中的Numpy和Pandas两个工具库,用来处理数据结构和运算,另外通过scikit-learn和Tensorflow 库来进行数据挖掘与建模,实现数据预处理、分类、回归、降维、模型选择等;展示层则是数据可视化的最终成果,笔者通过Matplotlib[2]、Pyecharts等工具库的应用,对分析层所分析的数据进行图形化展示,以另一个维度来观察数据,可以清晰地发现隐藏在数据中间的重要信息。因为本文是对数据展示形式的研究,下面介绍几个图形化展示实例的实现过程。
3.1脱贫数据的直观展现,提升管理者治理有效
建档贫困档案作为“精准扶贫”的一个重要指标,在笔者开展《信息化技术在“精准扶贫”工作中的应用和研究》项目中,搭建了精准扶贫信息系统,其中根据泰州市实际采集了2018年各区(市)脱贫人口数,总计脱贫人员7.25万人,为了直观展现,笔者通过Pyecharts[3]库采用地图形式展现,效果如图1所示。
本用例通过泰州区域地圖形式直观展示出泰州市脱贫人口的分布情况,以不同的颜色展示,由蓝到红表示脱贫人口的绝对数从小到大,可以从宏观上了解各个县(市、区)脱贫攻坚取得的成果,也可以通过鼠标的点击获取详细信息,并能够实现数据往下钻取。
通过贫困地图可以更直观地反映出全省各地区贫困分布情况,针对较为贫困的地区,深入分析和研究当地致贫的原因[4],作为乡村振兴工作的宏观指引;随着扶贫工作的进一步深入,贫困档案逐步建立,脱贫攻坚完成后,贫困档案将进一步提升管理者乡村治理的能力,并有效预防该地区返贫的风险,对各地区、各层级的乡村振兴工作进行微观指导。宏观与微观二者有机结合,进一步优化了乡镇振兴工作的开展。
其代码实现如图2所示,因涉及数据安全考虑,代码实现中均采用虚拟静态数据源,下同。
3.2 扶贫资金投入与产出的直观展现,助力乡村产业兴旺
对于扶贫资金的支持,相关部门按月都会统计投入与产出效益的比较,在笔者设计的精准扶贫系统中也将此类数据作为采集的重点,用于对扶贫资金投入产出的考核,为方便直观展示,笔者对此进行了一个双折线图的设计,效果如图3所示。
本用例通过双折线图的形式,分月度将扶贫资金投入产出的比较清晰展现出来,用蓝色折线表示扶贫资金的投入,用橙色折线表示产出的效益,当蓝色折线在橙色折线上方时,表示投入是大于产出的,当蓝色折线在橙色折线下方时,表示产出是大于投入的。通过此折线图4,可以了解到扶贫资金带来的实际效益规模,同时有效进行了扶贫资金的监管,对于长期投入高于产出的项目可以进一步分析原因,甚至终止项目,管理者通过图形更加容易发现适合本区域发展的项目,大力发展高回报率的项目,实现产业兴旺的目的,为乡村振兴目标提供了有力项目支撑。其代码实现如图4所示。
3.3 致贫原因的直观展现,预防脱贫人口返贫
对于致贫原因,笔者在研究中注意到,主要有因病、因学、因残、因灾、缺技术、缺资金等多方面因素,根据精准扶贫系统中采集的致贫原因数据,笔者通过雷达图展现的方式,可以直观反映某一地区致贫的情形,效果如图5所示。
本用例通过雷达图(或称蜘蛛网图)分析某村贫困人口的致贫原因,可以有效掌握一个地区致贫的主要原因,开展有针对性的帮扶工作,开展扶贫与扶志、扶智相结合,同时根据图中所示的“短板”,采用“补短板”方式,有效化解该地区致贫因素,进一步巩固了脱贫攻坚的成果,做到有的放矢[5],能够在返贫上起到有针对性的预防,为乡村振兴扫清了因各类因素而返贫的障碍,确保乡村振兴工作能够有序开展。其代码实现如图6所示。
4 结论
本文以建立贫困档案的研究为出发点,通过对各级各类貧困数据的研究和分析,引出基于Python技术的数据呈现在精准扶贫,以及脱贫攻坚胜利后预防返贫工作中带来更直观的决策依据。
Python语言在对数据分析和数据可视化方面的功能十分强大,除了Pyecharts、Matplotlib[6]等库以外,常用的还有Seaborn、Plotly、Bokeh[7]等,笔者借开展精准扶贫课题的研究对数据可视化进行了浅显的尝试。本文通过三个数据可视化实例的实现,抛砖引玉,期待同行共同研究,在大数据急速发展的今天,利用Python数据可视化的优势,为行业发展提供有力的可视化数据支撑。
参考文献:
[1] 贾利娟,刘娟,王健,等.基于PyEcharts的全球玉米贸易数据可视化系统建设及应用展望[J].农业展望,2019,15(3):46-54.
[2] 刘大成.Python 数据可视化之matploitlib实践[M].北京:电子工业出版社,2018.
[3] (爱尔兰)Igor Milovanovic. Python数据可视化编程实战[M]. 颛清山,译.北京:人民邮电出版社,2015.
[4] Julie Steele,Noah Iliinsky.数据可视化之美[M]. 祝洪凯,李妹芳,译.北京:机械工业出版社,2011.
[5] 郑戟明,柳青.Echarts在数据可视化课程中的应用[J].电脑知识与技术,2020,16(2):9-11.
[6] 李天辉.基于python的数据分析可视化研究与实现[J].电子测试,2020(20):78-79.
[7] 赵佳慧.面向乡村振兴的精准扶贫档案价值实现研究[D].河北:河北大学,2021.
【通联编辑:代影】