中国水产品进出口统计数据可视化设计与实现
2022-03-12孙月莹张佳泽张胜茂邹国华
孙月莹 张佳泽 张胜茂 邹国华
摘要:近年来,我国的水产品贸易市场持续发展,在世界水产品贸易市场中占据了愈发重要的地位。該文基于我国水产品贸易市场的进出口数据,设计并实现了中国水产品进出口贸易数据可视化,可展示水产品进出口贸易变化。首先对获取到的海关数据进行需求分析,其次进行数据库设计,将数据存储到MYSQL数据库中,然后使用Flask框架进行开发,展示页面用Echarts渲染,结合Ajax请求实现数据可视化。该系统相较以往图表等类型的数据统计方式有直观、清晰的特点,便于分析水产品的贸易规律。当前,受中美贸易摩擦等因素的影响,进出口量有所下降。
关键词:水产品贸易;Flask;Echarts;数据可视化
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2022)03-0012-04
开放科学(资源服务)标识码(OSID):
1 引言
我国是世界上主要的水产品生产国,水产品总产量自1989年起连续30年居世界第一,占世界总产量的40%以上[1]。2020年全球新冠病毒肺炎疫情迅速蔓延,对人民群众生命健康安全和经济社会稳定发展都带来严重考验[2],加之中美贸易摩擦,水产品行业也受影响[3]。目前现有的对于水产品进出口贸易数据的展示形式多为表格形式,相对单调。
数据可视化指一种表示数据或信息的技术,将数据或信息编码为包含在图形里的可见对象,如点、线、条等,可以把信息更加清晰有效地传达给用户,是数据分析或数据科学的关键技术之一[4]。当前,可供进行数据可视化的工具琳琅满目,数据可视化在各行各业中的应用也十分广泛,应用场景也不断增加。例如,基于CiteSpace对历史文化名城的研究进程、趋势和特点进行数据可视化分析,实现了对历史文化名城的研究进程的把握[5];警务数据可视化分析可以把人脑难以处理的海量数据转换为易于感知的图像,利用人类感知与计算机系统的深度耦合,挖掘警务数据背后隐藏的信息与规律[6];在电力通信方面,基于Flask和Echarts的光缆数据管理平台帮助实现了对光缆数据的高效高质量管理[7];软件开发方面,有基于Flask与爬虫技术的可视化深度学习数据标注系统有效提高了数据标注师对图文数据的标注质量。
通过对各种数据可视化的对比并结合水产品贸易数据的特点,本文基于Flask和Echarts,对我国2020年的水产品进出口贸易数据进行了可视化展示,实现对水产品进出口数据更清晰的展示,便于进行水产品进出口数据的分析。
2 系统设计
2.1 关键技术
1)Flask框架,当前大多数的web管理系统一部分是基于SSM框架的用java语言编写的网站,前端大同小异都是使用了html5的网页技术。综合文献资料可得,基于SSM框架的web应用优点很明显,最大的优势是便于后期维护管理。但是在编写可视化系统时,由于SSM框架的层次稳定性,对于中国水产品进出口贸易数据可视化的小型web网站来说,会导致代码量大,相较于本文采用的Python下的Flask框架会多出很多繁杂的代码。此外,在Python下还有多款不同的web框架,Django框架最具代表性的一种。而作为重量级的开发框架,Django框架的缺点与SSM框架相似。Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手,在短时间内就可以完成功能丰富的中小型网站。另外,Flask还有很强的定制性,用户可以根据自己的需求通过添加插件实现各种功能的拓展[7]。
2)Echarts可视化,本文目的是进行数据可视化展示,目前市场上可以做可视化的工具较多,综合本文研究内容开发时间短和尽量减少开发成本的特点,确定采用 Echarts对数据进行可视化展示。Echarts是国内IT三巨头之一的百度推出一款相对较为成功的开源项目,总体上来说它有这样的一些优点:
①Echarts.js容易使用。
Echarts.js的官方文档比较详细,而且官网中提供大量的使用示例供开发者使用。
②Echarts.js支持按需求打包。
Echarts.js官网提供了在线构建的工具,在线构建项目时,选择项目需要使用到的模块,从而达到减小JS文件体积的效果。
③Echarts.js开源。
④支持中国地图、世界地图功能。
这个在其他的一些可视化工具中是没有的,而本文统计的数据在进行可视化展示时借助中国地图和世界地图会更加形象。
3)开发工具
后端开发使用的IDE为JetBrains开发的PyCharm工具。该IDE提供了一些高级功能以用于支持Flask框架下的专业Web开发。在进行前端页面编写时,采用了HBuilder工具。在HBuilder中,前端代码具有自动补全的功能,一些提示使得代码的格式更加规范。加载文件时有自动识别的功能,以防止文件路径输入错误导致文件加载失败。此外,PyCharm和HBuilder两个软件具有并行开发的功能,在HBuilder中编写的前端代码PyCharm中自动同步,大大提高了开发效率。在数据库部分使用的是MYSQL数据库,MYSQL是一个关系型数据库管理系统。其社区版免费,且性能足够满足本系统的需求。此外,MYSQL还提供加密功能,该功能对于需要存储涉及敏感信息的系统是十分必要的。使用的数据库管理工具是Navicat,以直觉化的图形用户界面而建,使得开发者可以以安全简单的方式创建、组织、访问并共用信息。
2.2 系统架构
1)功能分析,通过对本文要实现的水产品进出口贸易系统进行功能分析,得到如图1所示的系统用例图。
通过对水产品进出口贸易可视化系统的非功能性进行分析得到如表1所示的系统非功能性需求。
2)非功能分析,通过对中国水产品进出口贸易数据可视化系统的基本功能需求和非功能需求分析,得到本系统的总体功能结构图,如图2所示。本可视化平台主要包括两个页面,一个是从中国角度展示国内的水产品贸易情况,例如各时间段的进出口趋势、进出口贸易方式的采用频率、各省份的进出口状况等;另一个页面是从世界的角度展示同时间各国间的水产品贸易情况。
水产品进出口贸易系统的总体架构如图3所示,分为前端和后端两部分,实现前后端分离的开发模式,后端提供接口,前端利用Ajax请求获取数据。开发流程大致为:首先将海关数据持久化存储到MYSQL数据库中,后端使用Flask框架编写程序。在Flask框架中调用MYSQL数据库中的数据,同时将数据解析成与前端匹配的数据形式,利用前端组件Ajax实现前后端数据交互,实现前端同步展示后端数据。使用Echarts等组件将数据可视化为图形模块,展示在浏览器的前端页面中供用户浏览。
3 数据库设计
3.1 数据分析
爬取到的海关数据是按照月份分进口数据和出口数据两个文件存放的。两个文件中的数据属性相同,含有的数据属性有:数据年月、商品编码、商品名称、贸易伙伴编码、贸易伙伴名称、贸易方式编码、贸易方式名称、注册地编码、注册地名称、第一数量、第一计量单位、第二数量、第二数量单位、出口金额(美元)、洲编码、洲名称。因为在数据可视化时要以分贸易伙伴、分注册地、分时间、分商品、分方式进行,所以,先根据可视化的内容对数据库进行设计,对数据进行结构化存储。初步计划分为8个表:洲别表、贸易伙伴表、贸易方式表、收发货人注册地表、商品表、计量单位表、进口数据表和出口数据表。洲编码作为洲别表的主键,贸易伙伴编码作为贸易伙伴表的主键,贸易方式编码作为贸易方式表的主键,收发货人注册地表作为收发货人注册地表的主键,商品编码作为商品表的主键,计量单位编码作为计量单位表的主键。进口数据表和出口数据表两个表的结构一致,为每一条进出口贸易数据设置一个ID作为主键,在这两个表中都设置外键:贸易伙伴编码、贸易方式编码、注册地编码、第一数量单位编码、第二数量单位编码等与其他表构建关系实现结构化存储。
3.2 数据结构与关系
1)概念结构设计,根据以上分析可得到本可视化系统的E-R图,如图4所示。其中进口数据表和出口数据表都是通过数据税号、贸易伙伴编码、贸易方式编码、注册地编码、第一数量单位编码、第二数量单位编码属性分别与商品表、贸易伙伴表、贸易方式表、收发货人注册地表、计量单位表建立联系。因为有第一数量单位编码和第二数量单位编码,所以进口数据表和出口数据表两个表都与计量单位表有两个联系,计量单位表和进口数据表、出口数据表都是一对二的关系。贸易伙伴表通过所在洲编码这个外键与洲别表建立联系。
2)逻辑结构设计,根据E-R图映射的关系模式如下(下划线表示主键、波浪线表示外键):
洲别表(洲编码、洲名称)。
贸易伙伴表(贸易伙伴编码、贸易伙伴名称、所在洲编码)。
贸易方式表(贸易方式编码、贸易方式名称)。
收发货人注册地表(注册地编码、注册地名称)。
商品表(税号、商品名称及说明)。
计量单位表(计量单位编码、计量单位名称)。
进口数据表(数据ID、数据年月、进口数据税号、贸易伙伴编码、贸易方式编码、注册地编码、第一数量、第一数量单位编码、第二数量、第二数量单位编码、进口金额)。
出口数据表(数据ID、数据年月、出口数据税号、贸易伙伴编码、贸易方式编码、注册地编码、第一数量、第一数量单位编码、第二数量、第二数量单位编码、出口金额)。
4 系统实现
4.1 后台服务
根据上面进行的需求分析和系统设计,最终实现的系统的时序图如图5所示。系统主要实现的是:通过前后端的数据交互,使得用户可以动态地浏览中国水产品贸易信息以及中国同世界各国间的水产品贸易信息。
4.2 前台展示
本系统对中国水产品进出口贸易数据实现了可视化展示。主要有两个页面,一个是从中国的角度展示水产品贸易情况,如图6所示。在该页面中,首先动态显示了本年度中国水产品总进口金额和总出口金额(单位是美元)。右上角的时间戳动态显示了通过中国地图可视化中国各省市2020年的水产品进出口情况。当鼠标经过某个省份时,会动态地显示该省份的年度进口金额和出口金额。每个省份根据进出口金额的不同显示为不同颜色,直观地反映了中国水产品进出口市场的分布情况,如图6所示,东南沿海省份的颜色偏深,根据图例,即可直观地得出我国主要的水产品进出口省份集中在东南沿海地区。此外容易观察得到,因为地域条件的限制,西部、西北部内陆地区的省份图标颜色较浅,水产品进出口贸易额相对较少。
页面中左上角的折线图可视化了中国2020年各月份的水产品进出口金额的变化情况。鼠标经过折线上的某个月份时,展示该月份的进口金额和出口金額,两条折线之间的差距即为该月份的贸易顺差额。该折线图一方面展示了在2020年间我国的水产品贸易进口和出口的变化趋势,另一方面展示了贸易顺差额的变化趋势。此外,从图中可以直观地可以得到我国常年呈现贸易顺差。
页面右侧的两个柱状图可视化了我国2020年新冠病毒肺炎疫情背景下水产品出口和进口金额前十位的省份,鼠标经过时显示该省份的累计进口、出口金额。根据省份的名称可以直观地得到:山东省是我国水产品进出口的第一大省份;进出口金额前十省份的进出口金额之和占到了我国累计进出口金额的绝大部分。
饼状图可视化了2020年间我国在水产品出口和进口贸易中采用各种贸易方式的频率。从饼状图中可以直观地得到,我国在同世界各国间的水产品贸易中主要采用的贸易方式为一般贸易,在水产品出口贸易中还常采用进料加工贸易方式。
另一个页面是从世界的角度展示2020年我国同世界各国的水产品贸易情况,基本机制和中国一致,鼠标经过某个国家会展示该国家或地区的名称以及2020年我国出口到该国的水产品总金额和从该国家进口的水产品总金额。两份数据同时展示更直观地反映出我国同世界各地区的水产品贸易是顺差还是逆差。例如,鼠标经过美国时,显示国家名称“美国”、2020年我国出口到美国的水产品总金额、2020年我国从美国进口的水产品总金额。根据进出口数据来看,显然我国同美国之间的水产品贸易,出口金额大于进口金额,呈现为贸易顺差,所以,我国在与美国之间进行水产品进出口贸易时需考虑贸易顺差对我国的优势与危害,及时调整我国的水产品进出口贸易政策,保证两国间的水产品贸易持续健康发展。
5 总结与展望
本文主要实现2020年间新冠病毒肺炎疫情背景下我国水产品进出口数据可视化,数据可视化部分采用的是Python中的Flask框架,Flask轻量级框架的开发优势在本文实现的系统中得到了很好体现。Echarts作为前端渲染工具的开发优势在本文实现的系统中也得到了很好的体现,尤其是其绘制的中国地图和世界地图部分,很好地展示了我国的水产品贸易情况。通过本文实现的可视化系统来看,2020年我国水产品贸易市场的贸易双额在2020年相较于往年都出现了不同程度的下降,贸易顺差趋势扩大。同时,东部主要水产品贸易省份的贸易额也都不同程度地出现了下降。
水产品进出口贸易萎缩的情况下,做好内销成了我国水产品贸易市场的当务之急。我国应不断发掘国内水产品贸易市场的潜力,制定相关政策,保证我国水产品贸易市场的持续健康发展。继续加强市场监管制度管理,一方面保证出口质量,避免出口链因出口质量问题出现大幅断链,另一方面,让本国人民放心购买本国产品,释放消费潜能以帮助水产品贸易市场顺利渡过难关。此外,还要继续关心扶持我国东南沿海地区主要水产品贸易省份的水产品进出口情况,帮助其继续发挥地域优势,促进我国水产品进出口贸易市场的持续发展。
参考文献:
[1] 赵海军,杨志龙,刘汉雄,等.新冠肺炎疫情对我国进出口水产品行业影响及应对[J].食品安全质量检测学报,2020,11(22):8180-8185.
[2] 甄玉洁,陈述平.2020年我国水产品进出口贸易情况分析[J].科学养鱼,2021(4):5-6.
[3] 庄海燕.数据可视化分析在创新城市建设中的应用探析[J].无线互联科技,2019,16(3):119-122.
[4] 张杨,何依.历史文化名城的研究进程、特点及趋势——基于CiteSpace的数据可视化分析[J].城市规划,2020,44(6):73-82.
[5] 何巍.警務数据可视化分析[J].福建电脑,2020,36(6):81-83.
[6] 张艺豪,盛丹红,翟丹丹.基于Flask和Echarts的光缆数据管理平台[J].电脑编程技巧与维护,2021(6):94-95.
[7] 赵北庚.基于Flask与爬虫技术的可视化深度学习数据标注系统[J].电子制作,2020(20):36-37.
【通联编辑:谢媛媛】