• 29
本系统实现对人口数据的可视化,通过图形化手段,将数据映射为图形、符号和颜等,清晰有效地传达了信息,大幅度地提高了人们对数据的感知与理解程度,便于人们从数据中进一步发现规律,帮助人们从复杂数据中理出头绪,化繁为简,变成看得见的财富,实现更有效的决策过程。
引言:数据可视化是可视化技术在非空间数据领域的应用,它改变了传统的通过关系数据表来观察和分析数据信息的方式,使人们能够以更直观的方式看到数据及其结构关系,发现数据中隐含的信息。
人口数据具有数据量大、类型多、复杂性高等特点。这些数据既枯燥又难于理解。如何才能将这些数据有效的展示出来,帮助用户理解数据,发现潜在的规律,是有待解决的问题。数据可视化提供了一种简单、高效的人与数据的沟通方式,从而更快地理解和处理各种相关信息。它能够将抽象的数据表示成为可见的图形或图像,显示数据之间的关联、比较、走势关系,有效揭示出数据的变化趋势,从而理解那些大量复杂的抽象数据信息,为决策支持提供帮助。
1.数据可视化的现状与发展趋势
1.1  数据可视化现状
从二十一世纪至今,计算机和互联网的迅速崛起,中国互联网进入鼎盛时期。在这期间,互联网产生海量的数据,这些数据纷繁复杂,而海量数据的背后也推动了可视化技术的飞速发展。目前国内做可视化的企业有很多,但技术侧重点不同,如百度的Echarts 是一个开源的可视化工具,技术重在前端,可直接为开发者使用,但不提供专业的服务。而阿里数加DataV、数字冰雹和DataHunter 等都是做数据可视化大屏的,能提供专业的商业产品和服务。
国内外有许多基于WEB技术的数据可视化类库,它们的底层技术规范都是基于SVG,Canvas 2D,Canvas 3D。SVG:可缩放矢量图形(Scalable Vector Graphics),是基于可扩展标记语言(标准通用标记语言的子集)用于描述二维矢量图形的一种图形格式。Canvas 2D:Canvas 通过 JavaScript
来绘制 2D 图形,通过逐像素来进行渲染。Canvas 3D WebGL:WebGL(Web Graphic Library)是一个 JavaScript API,用于在任何兼容的 Web 浏览器中渲染 3D 图形。WebGL 程序由用 JavaScript 编写的控制代码和用 OpenGL 着语言(GLSL)编写的着器代码构成,这种语言类似于 C 或 C++,可在 GPU 上执行。比较流行的基础绘图库,基于 SVG 的有 snap.svg、rapheal.js 等,基于 Canvas 2D 的有 zrender、g 等,基于 WebGL 的有 three.js、SceneJS、PhiloGL 等,这些基础绘图库可以让上层封装更简单容易。
中国人口地区数据可视化实现
三亚学院  黑珍珍  徐世民
虽然数据可视化技术在飞速发展,但也面临着一些问题和挑战。在可视化的过程中,设计一个新的可视化工具并具有高效的索引并非易事,多样性和异构性是一个大问题,如何对一个多样的数据集进行结构化、半结构化和非结构化比较困难。高效的数据可视化是发展进程中关键的一部分。大量数据的复杂性和高维度催生了几种不同的降维方法。然而,他们可能并不总是那么适用。数据可视化也不得不考虑视觉噪声、信息丢失、大型图像感知、高速图像变换、高性能要求、可感知的交互的扩展性等问题。1.2  数据可视化发展趋势
数据可视化正在进入一个新时代。互联网的飞速发展催生出了许多新技术的涌出。新兴的人工智能、
数据可视化的理论发展和多维成像技术的进步正在重塑分析和洞察力所能提供的潜在价值。而可视化在其中扮演着重要的角。随着互联网的飞速发展,产生的数据将以指数形式增长,对于可视化技术的要求也越来越高,易用性、性能、容错、可伸缩性以及正确性等方面必将是数据可视化发展的趋势。在实际应用方面,可视化技术也会涉及到越来越多的领域。
svg canvas
ProPublica的调查记者兼开发者Lena Groeger认为数据可视化在地图上将会有更广泛的应用,通过在地图中添加数据来说明不同区域的统计情况。如今开放数据越来越多,这对数据的可视化是有利的,创造自己独特的数据集将成为一种潮流,对定制数据可视化的需求也会成为未来发展的方向。不仅如此,响应式设计、小图和GIF等方面的需求也将是数据可视化技术开枝散叶,也会成为可视化技术的推动之力。
数据可视化越来越趋向于简化,一个可视化系统并不是越复杂,图表越多越好,不同类型行业的数据都应有适合其展现的形式。对于可视化技术而言,言简意赅才是它正确的表现形式,将纷繁复杂的数据压缩成一张表一个图是数据可视化的目标,也是可视化技术未来的发展趋势。
2.需求分析
2.1  设计的基本思想
系统设计的基本思想采用“自顶向下,逐步求精”的方法,依据需求进行一个总体的功能模块划分,把一个大的系统分成许多子系统,子系统再分成很多功能模块,再可以细分为许多子模块。而每次考虑每个子模块有哪些功能,然后进入详细设计阶段。当概要设计搞出来后,对这个系统就有一个比较清晰的理解了,也容易控制这个软件的范围之类。将复杂的问题分解开来,本系统分成全国人口年度数据、分省年度数据、主要城市年度数据、数据分析四个模块。
分解出基本模块后,然后进行详细设计,考虑详细细节,对每
• 30
个模块进行细分,直至完成整个系统。这样很大程度上提高了效率,避免了遗漏和错误,维护起来也很容易,井井有条。
系统采用三层开发就是将系统的整个业务应用划分为表示层,业务逻辑层和数据访问层,这样有利于系统的开发、维护、部署和扩展。三层开发实现“高内聚,低耦合”,采用“分而治之”的思想,把问题划分开来各个解决,易于控制,延展和分配资源。2.2  功能需求分析
本系统旨在对纷繁复杂的人口数据进行数据可视化,让人口数据得以更直观清晰的方式呈现。如图1所示,包括全国人口年度数据、分省年度数据、主要城市年度数据、数据分析四个模块。全国人口年度数据展示自建国以来全国的人口数、年龄结构、性别比例和抚养比等数据,分省年度数据展示各个省份各年的人口数据信息,主要城市年度数据展示各个城市各年的人口数据信息,数据分
析模块对数据进行简单的统计筛选。
图1 系统总体结构图
3.系统的设计与实现
3.1 数据可视化系统设计
本系统采用回路模型进行设计,在各个方面比较完善的揭示了整个可视化流程的进程,对原始数据的预分析到映射成为几何数据,以及可视化图形的绘制。该模型使用户可以从容的进行数据交互,让用户对于数据的挖掘和了解有了更多的可能性。系统采用JSON作为统一的数据交互方式以及Echarts可视化类库,基于WEB对中国各地区人口进行数据可视化。
具体模型如下图2所示。
图2 系统整体模型
3.2  数据的获取
本系统数据均来自国家统计局网站数据,数据均为公开信息。该例采用Python网络爬虫对国家统计局有关人口的数据进行爬取。将取得的数据进行结构化处理,使其符合数据库的规范范式,整理
导入mysql数据库。3.3  数据库的分析与设计
根据本系统功能需求,对数据库的操作只有查询操作,不涉及增加、修改、删除,各部分数据之间不存在关联。而在关系型数据库中,多个表的关联操作会消耗大量的资源。故该数据库的表设计均为单表,每张表存放一个部分的数据。表1为全国总人口年度数据。
表1 全国总人口
字段描述字段名数据类型是否主键是否为空自增长主键id
Int(24)是否总人口total_population Int(24)否否男性人口man_population Int(24)否否女性人口woman_population Int(24)否否城镇人口city_population Int(24)否否乡村人口village_population
Int(24)否否年份
year
Int(24)
3.4  服务器端功能实现
(1)开发环境及项目结构
本系统服务器端采用M V C 模式,基于S S M 进行开发,通过SpringMVC与前端页面进行数据交互,通过Spring管理所有的Bean,Mybatis对数据库进行操作,MySQL存储数据。
(2)数据访问层实现
在整个系统中,数据访问层是非常重要的,它提供整个项目的
数据访问与持久化功能。在分层系统中所有有关数据访问、检索、持久化的任务,最终都将在这一层完成。系统采用MyBatis框架,它是一个轻量的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJO映射成数据库中的记录。
部分数据库操作逻辑如下图3所示:
图3 数据访问层
(3)业务逻辑层实现
业务逻辑层是整个系统架构的核心部分。从广义上讲,系统本身存在业务逻辑,自然存在于系统内部,是软件具有的在某个业务领域内的逻辑,是系统的核心和灵魂。系统界面和交互外的一切都可看作是广义业务逻辑。从狭义上来说,在MVC架构中“业务逻辑层”的职责,是系统中处理与业务相关任务的部分,一般狭义上的业务逻辑不包含数据持久化,而只关注领域内的相关业务。
在本系统中业务逻辑层可以看作是狭义上的业务逻辑层,主要任务在于接收数据访问层和表示层返回的数据,对返回的数据进行
封装,以及简单的数据分析,在本例中将对(求和、最大值、最小值、中位数、平均值、方差、标准差)等七个方面进行分析。
(4)表示层实现
表示层主要负责接收业务逻辑层的数据和视图层的返回,主要实现WEB层的功能。本系统中采用SpringMVC框架,如下图4所示:
• 31
图4 SpringMVC
3.5  浏览器端功能实现
(1)页面设计
系统分为四个模块,包括全国人口年度数据、分省年度数据、主要城市年度数据以及数据分析。全国人口年度数据对年末(全国总人口、男性人口、女性人口、城镇人口、乡村人口、出生率、死亡率、自然增长率、年龄结构和抚养比)等多个指标多个年度的数
据进行数据可视化。如下图5所示:
图5 全国人口年度数据
分省年度数据对不同省份年末多个指标多个年度的数据进行数据可视化。
主要城市年度数据对全国主要城市年末多个指标多个年度的数据进行数据可视化。
数据分析对国人口年度数据、分省年度数据、主要城市年度数据的多个指标多个年度的数据进行分析,可选取不同年份进行(求和、最大值、最小值、中位数、平均值、方差、标准差)等七个方面进行分析操作,所需数据通过Ajax与后台进行交互。
(2)Echarts实现可视化渲染
系统采用Echarts对数据进行可视化渲染,ECharts是一个使
用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器,底层依赖轻量级的矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。
4.展望
虽然本系统基于SSM框架开发的中国人口地区数据可视化系统让部分数据更清晰、易于理解。但在系统的功能和具体实现上,还有许多可以完善和改进的地方。未来,关于人口数据可视化的发展应该不
仅仅局限于当前的形式,更丰富、多样、简单的方式还有待我们去探究。人口数据可视化的发展趋势应该向着更精美、交互性更强、更专业的方向发展。
作者简介:
黑珍珍(1988—),女,硕士,讲师,研究发现:电子商务,数据可视化。
徐世民(1995—),男,大学本科,信息管理与信息系统专业2015级学生。
(上接第28页)
对模型的改善还是很明显的:只用原始数据集(样本量为5000)进行训练,识别率为81.3%;采用扩充后的数据集(样本量扩充到7000)进行训练,识别率提高到84.7%
图5  GAN生成图像
3.结论与展望
本文设计并实现了基于GAN 的海防船只图像增强。采用基于 Retinex 理论设计生成器,采用残差网络结构设计了判别器,同时,生成器损失函数计算中引入了感知损失,提高生成图像与真实图像的相似度。扩充后的数据集提高了船只的检测准确率。
实验中还存在着一些不足,由于原始数据样本的局限性,生成的图片种类不够丰富,下一步考虑采集更多种类的船只数据进行GAN 的学习,丰富数据集;同时可以将该图像增强方法应用到其它小数据集场景中。
作者简介:王向阳(1983-),男,大学本科,现供职于河南中光学集团有限公司,研究领域为计算机视觉、视频图像处理、安防监控、光学工程。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。