(民族語言智能處理甘肅省重點實驗室 甘肅蘭州 730000)
摘 要:一方面,隨著數(shù)據(jù)可視化技術的不斷發(fā)展,互聯(lián)網(wǎng)上存在許多可視化應用開發(fā)接口,其中以Echarts和Highcharts最為著名。另一方面,由于Python的Web框架能夠進行快速開發(fā)的特點越來越多的被企業(yè)所采用。本文介紹了數(shù)據(jù)可視化常用方法并針對Echarts和Highcharts兩種開源JS可視化圖形庫進行對比分析研究了Django框架的主要功能特性。
關鍵詞:可視化應用 Django Ehcarts Highcharts。
引言
在信息社會中,信息、知識成為重要的生產(chǎn)力要素,和物質(zhì)、能量一起構(gòu)成社會賴以生存的三大資源。隨著信息化的迅猛發(fā)展,人們需要處理的信息日益增多。如今互聯(lián)網(wǎng)一天的信息量可達到1EB的驚人程度,面對如此龐大的數(shù)據(jù),如何對海量數(shù)據(jù)信息進行分析、歸納,并從中發(fā)現(xiàn)隱藏的規(guī)律成為當今社會的重要問題。數(shù)據(jù)可視化技術的出現(xiàn)有效的解決了這個問題。作為重要的數(shù)據(jù)挖掘和分析手段數(shù)據(jù)可視化技術數(shù)據(jù)處理和顯示領域中扮演著重要角色。
一、數(shù)據(jù)可視化的常用方法和類庫
數(shù)據(jù)可視化的概念最早是在300年前被William Playfair首先提及,是一種將繁瑣、雜亂的數(shù)據(jù)通過圖形的手段直觀、有效的數(shù)據(jù)呈現(xiàn)手段。這里將針對數(shù)據(jù)可視化的常用方法和類庫進行介紹。[1]
1.常用方法
在面對海量數(shù)據(jù)時,通過生動形象的圖形和圖標形式能夠大大提高數(shù)據(jù)的可讀性。在數(shù)據(jù)可視化具體應用中,針對不同的數(shù)據(jù)數(shù)據(jù)類型需要選擇相應的表達方法。根據(jù)數(shù)據(jù)的特征來劃分,數(shù)據(jù)可分為單維數(shù)據(jù)、二維數(shù)據(jù)、多維數(shù)據(jù)、網(wǎng)絡數(shù)據(jù)、時序數(shù)據(jù)和空間數(shù)據(jù)幾大類。面對不同的數(shù)據(jù)類型均有有適合其自身的可視化方法,常用的數(shù)據(jù)可視化方法及其對應的數(shù)據(jù)類型信息如下:
(1)散點圖:散點圖主要用于考察多個變量間的相關關系和聚焦效應及顯示和比較數(shù)據(jù)的值,適用于二維和三維數(shù)據(jù)類型。
(2)折線圖:折線圖類似于散點圖,不同的是采用直線將個數(shù)據(jù)點鏈接起來的圖形。折線圖主要用于反映數(shù)據(jù)隨時間變化的趨勢變化,適用于二維數(shù)據(jù)的顯示。[2]
(3)柱狀圖:用于顯示離散數(shù)據(jù),利用柱狀圖形的長度來反映數(shù)據(jù)的差異,適用于二維數(shù)據(jù)。
(4)地圖:地圖是展現(xiàn)數(shù)據(jù)空間特性的重要可視化方法,地圖結(jié)合散點圖能夠直觀地展現(xiàn)數(shù)據(jù)的空間分布狀態(tài)及具體數(shù)值。
(5)餅圖:通過餅圖能夠描述二維數(shù)據(jù)的局部和整體之間的占比關系。
(6)雷達圖:雷達圖適用于表示單一或多個對象的多個特性的數(shù)值。雷達圖通常用于對單一或者多個對象進行多個特性的對比分析,其對比結(jié)果及其直觀。[3]
2.開源類庫
目前互聯(lián)網(wǎng)上有許多開源的數(shù)據(jù)可視化框架,其中最具代表性的框架有Echarts和Highcharts。Echarts和Highcharts對可視化圖表進行了封裝,使用者只需要填入相應的數(shù)據(jù)類型就能得到絢麗的可視化圖形,極大的簡化了可視化應用的開發(fā)。
(1)Echarts
Echarts由百度研發(fā)的一種基于javascript的前端圖形庫,其底層依賴于Canvas。除了具有專業(yè)的可視化圖表類庫,Echarts具有強大的圖表交互功能,其組件包含在action和events兩個類庫中。
(2)Highcharts
同Echarts一樣,Highcharts也是一種前端圖形庫。它是由國外團隊研發(fā)的,在國外享有極高的聲譽。Highcharts同樣支持多種圖表類型(如曲線圖、區(qū)域圖、柱狀圖、餅狀圖、雷達圖以及各種圖表的綜合運用等等)和交互功能(如提示、放大、變焦等等),它的底層依賴于SVG。[4]
自Echarts3.0和Echarts-X發(fā)布以來,Echarts的功能已經(jīng)非常全面。相對Echarts來講,Highcharts在功能上還存在一些不足:在圖表支持方面,Highcharts部支持力導布局圖與和弦圖。在功能交互方面,不支持拖拽重計算、數(shù)據(jù)視圖、值域漫游和大規(guī)模散點。
二、Django架構(gòu)
1.開發(fā)模式
Django框架與其他常用的開源Web框架一樣,也采用MVC的開發(fā)模式,根據(jù)其類庫名稱的特點稱為MTV更為合適。[5]
(1)MVC
MVC(Model、View和Controller的縮寫),是Web開發(fā)的通用的開發(fā)架構(gòu)。它將界面設計、數(shù)據(jù)庫設計以及界面交互分成獨立的三個模塊:視圖(View)、模型(Model)和控制器(Controller)。視圖層主要是用于進行前端頁面的設計和管理,模型層定義了數(shù)據(jù)表的結(jié)構(gòu)和相關的業(yè)務邏輯,而控制層則負責定義處理用戶請求和服務器如何響應的規(guī)則。
(2)MTV
在Django框架中對于視圖和控制器層的模塊命名有所不同。Django中的視圖層模塊被稱謂Templates,控制器層模塊被命名為View,因而被成為MTV設計模式。然而MTV和MVC在設計思想上沒有什么不同,僅僅是命名規(guī)則不同而已。
2.功能特點
Django是基于Python語言的一種Web框架,基于Python強大的第三方庫,其功能非常強大。使用Django進行Web開發(fā)可以讓開發(fā)人員省去許多不必要的麻煩,從而達到快速開發(fā)。Django在數(shù)據(jù)庫訪問、頁面管理、表單處理和后臺管理等方面設計十分靈巧:
(1)數(shù)據(jù)庫訪問
Django使用ORM的數(shù)據(jù)庫訪問機制。ORM機制能夠讓開發(fā)人員省去編寫復雜的SQL語句的步驟,利用程序代碼實現(xiàn)建庫、建表等操作。
(2)頁面管理
Django在頁面管理方面類似于Jinjia2,具有模板的可繼承性。通過這種機制可以將真?zhèn)€頁面劃分成若干小的功能模塊,使用時直接導入而不必對代碼進行復制粘貼。
(3)表單處理
Django可以通過ModelForm根據(jù)模型自動生成相應表單,并且可以通過對Form類的設置對表單進行驗證。
(4)后臺管理
Django擁有強大的后臺管理功能,只需要在配置文件中設置參數(shù)便可開啟。系統(tǒng)管理者可以運用后臺管理界面進行數(shù)據(jù)的訪問、修改等操作。
結(jié)語
隨著社會信息量的不斷增加,可視化技術已不單單面向企業(yè)和單位而會越來越多的面向大眾。Django作為一種能夠進行快速開發(fā)的Web框架,在面向大眾的可視化話應用開發(fā)中將會扮演重要的角色。本文簡單的講解了Django框架和數(shù)據(jù)可視化的概念,并介紹了一些開源庫,謹供開發(fā)愛好者參考斧正。
參考文獻
[1] 朱成.基于Django 的安全威脅任務管理系統(tǒng)構(gòu)建[D]. 復旦大學. 2011.
[2] 郭力子. 基于開源的 Web 開發(fā)架構(gòu)———ZOPE/Python[J]. 計算機時代. 2008,(07).
[3] 張寶輝,張金磊,黃龍翔(2013).計算機建模在教學評價中的應用研究[J].中國電化教育, (4):103-109.
[4] 王亞卿,方龍. 淺析 python 在地圖處理中的運用. 華東森林經(jīng)理. 2008,(01).
[5] 吳衛(wèi)平, 王麗芳, 蔣澤軍. 基于 ORM 的數(shù)據(jù)持久層框架研究[J]. 微電子學與計算機, 2008, 25(7): 188-191.
作者簡介
侯佳奇,男,西北民族大學碩士研究生。
本論文得到了西北民族大學中央專項(NO. Yxm2015188)的資助。