APP下载

基于Django的数据可视化应用研究

2017-04-26侯佳奇

新教育时代·教师版 2017年10期

(民族语言智能处理甘肃省重点实验室 甘肃兰州 730000)

摘 要:一方面,随着数据可视化技术的不断发展,互联网上存在许多可视化应用开发接口,其中以Echarts和Highcharts最为著名。另一方面,由于Python的Web框架能够进行快速开发的特点越来越多的被企业所采用。本文介绍了数据可视化常用方法并针对Echarts和Highcharts两种开源JS可视化图形库进行对比分析研究了Django框架的主要功能特性。

关键词:可视化应用 Django Ehcarts Highcharts。

引言

在信息社会中,信息、知识成为重要的生产力要素,和物质、能量一起构成社会赖以生存的三大资源。随着信息化的迅猛发展,人们需要处理的信息日益增多。如今互联网一天的信息量可达到1EB的惊人程度,面对如此庞大的数据,如何对海量数据信息进行分析、归纳,并从中发现隐藏的规律成为当今社会的重要问题。数据可视化技术的出现有效的解决了这个问题。作为重要的数据挖掘和分析手段数据可视化技术数据处理和显示领域中扮演着重要角色。

一、数据可视化的常用方法和类库

数据可视化的概念最早是在300年前被William Playfair首先提及,是一种将繁琐、杂乱的数据通过图形的手段直观、有效的数据呈现手段。这里将针对数据可视化的常用方法和类库进行介绍。[1]

1.常用方法

在面对海量数据时,通过生动形象的图形和图标形式能够大大提高数据的可读性。在数据可视化具体应用中,针对不同的数据数据类型需要选择相应的表达方法。根据数据的特征来划分,数据可分为单维数据、二维数据、多维数据、网络数据、时序数据和空间数据几大类。面对不同的数据类型均有有适合其自身的可视化方法,常用的数据可视化方法及其对应的数据类型信息如下:

(1)散点图:散点图主要用于考察多个变量间的相关关系和聚焦效应及显示和比较数据的值,适用于二维和三维数据类型。

(2)折线图:折线图类似于散点图,不同的是采用直线将个数据点链接起来的图形。折线图主要用于反映数据随时间变化的趋势变化,适用于二维数据的显示。[2]

(3)柱状图:用于显示离散数据,利用柱状图形的长度来反映数据的差异,适用于二维数据。

(4)地图:地图是展现数据空间特性的重要可视化方法,地图结合散点图能够直观地展现数据的空间分布状态及具体数值。

(5)饼图:通过饼图能够描述二维数据的局部和整体之间的占比关系。

(6)雷达图:雷达图适用于表示单一或多个对象的多个特性的数值。雷达图通常用于对单一或者多个对象进行多个特性的对比分析,其对比结果及其直观。[3]

2.开源类库

目前互联网上有许多开源的数据可视化框架,其中最具代表性的框架有Echarts和Highcharts。Echarts和Highcharts对可视化图表进行了封装,使用者只需要填入相应的数据类型就能得到绚丽的可视化图形,极大的简化了可视化应用的开发。

(1)Echarts

Echarts由百度研发的一种基于javascript的前端图形库,其底层依赖于Canvas。除了具有专业的可视化图表类库,Echarts具有强大的图表交互功能,其组件包含在action和events两个类库中。

(2)Highcharts

同Echarts一样,Highcharts也是一种前端图形库。它是由国外团队研发的,在国外享有极高的声誉。Highcharts同样支持多种图表类型(如曲线图、区域图、柱状图、饼状图、雷达图以及各种图表的综合运用等等)和交互功能(如提示、放大、变焦等等),它的底层依赖于SVG。[4]

自Echarts3.0和Echarts-X发布以来,Echarts的功能已经非常全面。相对Echarts来讲,Highcharts在功能上还存在一些不足:在图表支持方面,Highcharts部支持力导布局图与和弦图。在功能交互方面,不支持拖拽重计算、数据视图、值域漫游和大规模散点。

二、Django架构

1.开发模式

Django框架与其他常用的开源Web框架一样,也采用MVC的开发模式,根据其类库名称的特点称为MTV更为合适。[5]

(1)MVC

MVC(Model、View和Controller的缩写),是Web开发的通用的开发架构。它将界面设计、数据库设计以及界面交互分成独立的三个模块:视图(View)、模型(Model)和控制器(Controller)。视图层主要是用于进行前端页面的设计和管理,模型层定义了数据表的结构和相关的业务逻辑,而控制层则负责定义处理用户请求和服务器如何响应的规则。

(2)MTV

在Django框架中对于视图和控制器层的模块命名有所不同。Django中的视图层模块被称谓Templates,控制器层模块被命名为View,因而被成为MTV设计模式。然而MTV和MVC在设计思想上没有什么不同,仅仅是命名规则不同而已。

2.功能特点

Django是基于Python语言的一种Web框架,基于Python强大的第三方库,其功能非常强大。使用Django进行Web开发可以让开发人员省去许多不必要的麻烦,从而达到快速开发。Django在数据库访问、页面管理、表单处理和后台管理等方面设计十分灵巧:

(1)数据库访问

Django使用ORM的数据库访问机制。ORM机制能够让开发人员省去编写复杂的SQL语句的步骤,利用程序代码实现建库、建表等操作。

(2)页面管理

Django在页面管理方面类似于Jinjia2,具有模板的可继承性。通过这种机制可以将真个页面划分成若干小的功能模块,使用时直接导入而不必对代码进行复制粘贴。

(3)表单处理

Django可以通过ModelForm根据模型自动生成相应表单,并且可以通过对Form类的设置对表单进行验证。

(4)后台管理

Django拥有强大的后台管理功能,只需要在配置文件中设置参数便可开启。系统管理者可以运用后台管理界面进行数据的访问、修改等操作。

结语

随着社会信息量的不断增加,可视化技术已不单单面向企业和单位而会越来越多的面向大众。Django作为一种能夠进行快速开发的Web框架,在面向大众的可视化话应用开发中将会扮演重要的角色。本文简单的讲解了Django框架和数据可视化的概念,并介绍了一些开源库,谨供开发爱好者参考斧正。

参考文献

[1] 朱成.基于Django 的安全威胁任务管理系统构建[D]. 复旦大学. 2011.

[2] 郭力子. 基于开源的 Web 开发架构———ZOPE/Python[J]. 计算机时代. 2008,(07).

[3] 张宝辉,张金磊,黄龙翔(2013).计算机建模在教学评价中的应用研究[J].中国电化教育, (4):103-109.

[4] 王亚卿,方龙. 浅析 python 在地图处理中的运用. 华东森林经理. 2008,(01).

[5] 吴卫平, 王丽芳, 蒋泽军. 基于 ORM 的数据持久层框架研究[J]. 微电子学与计算机, 2008, 25(7): 188-191.

作者简介

侯佳奇,男,西北民族大学硕士研究生。

本论文得到了西北民族大学中央专项(NO. Yxm2015188)的资助。