摘 要: 現(xiàn)代數(shù)據(jù)處理越來越依賴于信息技術(shù),然而缺乏相關(guān)的方法可用于分析大量數(shù)據(jù)可視化的問題,因此以系統(tǒng)數(shù)據(jù)可視化為目標(biāo),設(shè)計(jì)了數(shù)據(jù)可視化的技術(shù)平臺(tái),并且實(shí)現(xiàn)了其基本的應(yīng)用功能,同時(shí)利用R語言與JavaWeb相結(jié)合的方式使其功能更加強(qiáng)大。該平臺(tái)的實(shí)現(xiàn)具有一定的經(jīng)濟(jì)價(jià)值和積極現(xiàn)實(shí)意義。
關(guān)鍵詞: 數(shù)據(jù)可視化; Web數(shù)據(jù); R語言
中圖分類號(hào): TP311 ? ? ?文獻(xiàn)標(biāo)志碼: A
Development of Data Vsualzaton Technology Platform
SHAO Quanyong
(Qngha ndustral Vocatonal Techncal School, Qngha 810000)
Abstract: Wth the ncreasng dependence of modern data processng on nformaton technology, there s a lack of relevant methods to analyze the vsualzaton of large amounts of data. Ths paper desgns a data vsualzaton technology platform wth the goal of data vsualzaton, and realzes ts basc applcaton modes. t makes ts functons more powerful by combnng R language wth JavaWeb. The realzaton of ths platform has certan economc value and postvely practcal sgnfcance.
Key words: Data vsualzaton; Web data; R language
0 引言
數(shù)據(jù)可視化將對(duì)于數(shù)據(jù)的研究具有巨大的推進(jìn)力,數(shù)據(jù)可視化利用人類的感知能力和認(rèn)知能力探索數(shù)據(jù)中隱藏的數(shù)據(jù)規(guī)律[1]。數(shù)據(jù)的存儲(chǔ)形式在過去經(jīng)常是數(shù)據(jù)圖表或者是文檔,數(shù)據(jù)可視化可以將數(shù)據(jù)最直觀的形式呈現(xiàn)在用戶者面前。例如現(xiàn)在經(jīng)常使用到的瀑布圖和GS地圖等[2],由于人腦對(duì)于色彩和位置等圖形元素更為敏感,使得數(shù)據(jù)可視化形式更加讓人們易于接受,目前基于Web前端的數(shù)據(jù)可視化方法可以呈現(xiàn)在不同的平臺(tái)上,比如桌面端和移動(dòng)端。Web前端技術(shù)在互聯(lián)網(wǎng)上的使用,讓更加廣泛地增加數(shù)據(jù)的可訪問性,理解數(shù)據(jù)的過程將會(huì)十分迅速[3]。在整個(gè)設(shè)計(jì)系統(tǒng)上,加以實(shí)現(xiàn)和分析,通過測(cè)試,驗(yàn)證可視化數(shù)據(jù)的合理性與可理解性。
1 相關(guān)理論與技術(shù)基礎(chǔ)
1.1 數(shù)據(jù)可視化及其方法
在傳統(tǒng)的數(shù)據(jù)處理中,運(yùn)用比較頻繁的就是折線圖、柱狀圖和條形圖,使用數(shù)據(jù)可視化方法是面向互聯(lián)網(wǎng)的技術(shù),使得數(shù)據(jù)的功能易用性大大增加,這是需要強(qiáng)大的數(shù)據(jù)處理能力與分析能力相互協(xié)調(diào)的,數(shù)據(jù)可視化的應(yīng)用目標(biāo)可以分為4種常見的情況[4],第一種是跟蹤、采集數(shù)據(jù),使用實(shí)時(shí)性的圖表讓人們獲得數(shù)據(jù)的信息,第二種是分析數(shù)據(jù),不僅是直觀地呈現(xiàn)數(shù)據(jù)規(guī)律,還會(huì)以檢索的數(shù)據(jù)處理方式與用戶進(jìn)行深度交互[5],體現(xiàn)數(shù)據(jù)的隱藏關(guān)系,第三種是為了調(diào)動(dòng)用戶對(duì)于圖表的快速識(shí)別和理解能力,需要將特別理解的圖形用鮮明的顏色作出標(biāo)記,把握住用戶者的理解慣性。最后一種是可視化技術(shù)采用圖像沖擊,視覺上的沖擊會(huì)讓感官感受達(dá)到認(rèn)可的目的,尤其是在海報(bào)和雜志上運(yùn)用很多,渲染成分極為重要。
信息可視化的數(shù)據(jù)分類可以分成九類,分別是地理類、文本類、時(shí)序、網(wǎng)絡(luò)、層次和多維數(shù)據(jù)以及一、二、三維數(shù)據(jù)。在一、二維數(shù)據(jù)的可視化方法上,根據(jù)視覺關(guān)系可以分成基于位置的方法和基于顏色和面積的方法,可以通過兩個(gè)維度的位置或者是在一個(gè)維度上映射到另一個(gè)維度的面積,三維數(shù)據(jù)的可視化方法是降維度為主要手段[6],一種是分類降維,另一種是面積降維映射,例如可以體現(xiàn)為有色散點(diǎn)圖,多維數(shù)據(jù)的尺度難以衡量,依然需要進(jìn)行降維處理,主要是兩個(gè)大類,線性降維和非線性降維,常見的數(shù)據(jù)可視化方法是基于幾何方法學(xué)和基于圖表,分別包含非負(fù)矩陣分解和局部線性方法,時(shí)序數(shù)據(jù)則是包含時(shí)間屬性,主要包括基礎(chǔ)統(tǒng)計(jì)圖,用時(shí)間上的序列變化描述數(shù)據(jù)變化的總體趨勢(shì),螺旋圖可以呈現(xiàn)數(shù)據(jù)的周期性參考特征,網(wǎng)狀和層次數(shù)據(jù)可視化采用節(jié)點(diǎn)鏈接發(fā)與空間填充方法。
2.2 數(shù)據(jù)可視化相關(guān)技術(shù)
數(shù)據(jù)可視化技術(shù)在Web可視化工具開發(fā)中,主要是使用Echarts和D3.js作為數(shù)據(jù)可視化繪圖的工具,概念可視化,可以將抽象的概念名稱變得跟家具體,易于理解,通過動(dòng)態(tài)的用戶交互界面將抽象的概念呈現(xiàn)出來,一般的方法主要圖表清晰地表達(dá)出來。使用R語言,是統(tǒng)計(jì)分析的最常用語言之一[7],其與C語言兼容性很強(qiáng),在R語言的語義是函數(shù)設(shè)計(jì)語言,通過R語言作為函數(shù)的輸入,其做法是使語言開發(fā)者具有更大的操作靈活性,R語言具有很多的程序包,如表1所示。
便于開發(fā)者研究和分析,R語言與數(shù)據(jù)可視化的關(guān)系很大,R語言具有許多統(tǒng)計(jì)計(jì)算算法,其豐富的統(tǒng)計(jì)類庫幫助開發(fā)者做好數(shù)據(jù)統(tǒng)計(jì)工作。其頂尖的制圖能力非常適合將數(shù)據(jù)以展現(xiàn)圖像細(xì)節(jié)的形式彰顯出來,具有豐富的數(shù)據(jù)接收能力,對(duì)于由各個(gè)平臺(tái)轉(zhuǎn)換來的數(shù)據(jù)很好地整合在一起,其輕便的爬蟲方法十分便捷地獲取網(wǎng)上的在線數(shù)據(jù)信息[8],同時(shí)在基于Web開發(fā)的過程中,可以很方便地兼容Java開發(fā)語言,其跨平臺(tái)能力也是十分強(qiáng)大,主流操作系統(tǒng)都可以運(yùn)行和編譯,例如Lnux、Wndows和MacOS等等。如表2所示。
Web領(lǐng)域的開發(fā)工作主要基于JavaWeb,而且這主要是基于Java語言強(qiáng)大的功能,現(xiàn)用的Java框架有將近5種主流使用工具其開源程度很大[9],其中以Sprng MVC為主,長期處于領(lǐng)導(dǎo)地位,這是最為常用JavaWeb開發(fā)工具,其占比幾乎為43%左右,并且這一占比還再不斷地增長,對(duì)于服務(wù)器端的開發(fā),Tomcat的使用率極高,處于應(yīng)用領(lǐng)域的主導(dǎo)地位。
3 基于Web數(shù)據(jù)可視化系統(tǒng)設(shè)計(jì)
在軟件系統(tǒng)開發(fā)中,需要考慮整體框架的設(shè)計(jì)開發(fā)功能,框架應(yīng)包含系統(tǒng)功能的研究和性能的優(yōu)化,系統(tǒng)設(shè)計(jì)的目的是將excel的數(shù)據(jù)源對(duì)接Java數(shù)據(jù)處理功能接口實(shí)現(xiàn),然后傳遞給R語言,利用R語言將數(shù)據(jù)分析為可視化的數(shù)據(jù)圖表,將利用JavaWeb的開發(fā)工具框架SprngMVC的Web客戶端展示給用戶者。Web展示過程需要整個(gè)框架SprngMVC的處理后產(chǎn)出,以上是系統(tǒng)設(shè)計(jì)的流程圖,具體描述如圖1所示。
系統(tǒng)功能設(shè)計(jì)需要分成幾個(gè)子模塊分別單獨(dú)設(shè)計(jì),其整體組成圖如圖所示,R語言數(shù)據(jù)處理子模塊包含數(shù)據(jù)處理子模塊與JavaWeb子模塊兩大部分,R語言數(shù)據(jù)處理子模塊包含數(shù)據(jù)轉(zhuǎn)換接口與圖形繪制接口,JavaWeb子模塊由業(yè)務(wù)系統(tǒng)和管理系統(tǒng)組成,這部分子模塊與數(shù)據(jù)庫進(jìn)行對(duì)接,包含了用戶管理功能和數(shù)據(jù)導(dǎo)入接口設(shè)計(jì),數(shù)據(jù)導(dǎo)入接口接收Excel文件或者是csv格式的數(shù)據(jù)文件,通過JavaWeb頁面導(dǎo)入控件將數(shù)據(jù)源導(dǎo)入至Java后臺(tái),后臺(tái)服務(wù)器需要處理內(nèi)存臨時(shí)數(shù)據(jù)、數(shù)據(jù)庫的表單以及頁面的表單,這是數(shù)據(jù)可視化的最初始化的步驟,是對(duì)數(shù)據(jù)處理的入口。而針對(duì)R語言數(shù)據(jù)處理的子模塊,主要是實(shí)現(xiàn)的是數(shù)據(jù)處理和繪圖制表工作。在用R語言處理數(shù)據(jù)前,需要對(duì)變量定義合理的變量名,然后對(duì)數(shù)據(jù)信息進(jìn)行清洗工作,數(shù)據(jù)清洗的方案如表3所示。
用戶數(shù)據(jù)被R語言用來轉(zhuǎn)化,利用R語言中的assgn函數(shù)將Java語言的數(shù)據(jù)類型轉(zhuǎn)換成R語言的數(shù)據(jù)類型,R語言的數(shù)據(jù)類型利于數(shù)據(jù)對(duì)圖形的轉(zhuǎn)化,主要以向量的形式存在。利用統(tǒng)計(jì)學(xué)領(lǐng)域的知識(shí),對(duì)數(shù)據(jù)信息繪制成圖形展示,其中主要涉及R語言的繪圖系統(tǒng),包含R語言的三個(gè)常用的程序包。第一個(gè)是Lattce繪圖函數(shù)程序包,lattce繪圖是一次性的成圖,常用于不同變量之間的交互情形。第二個(gè)是基本繪圖函數(shù),包含plot、lnes、text、axs等方法,這些方法可以啟用圖形設(shè)備,在設(shè)備上進(jìn)行基本圖形的繪制,適用于變量的散點(diǎn)圖繪制。ggplot2繪圖系統(tǒng),具有強(qiáng)大的功能,不僅具有標(biāo)注注釋,標(biāo)題自動(dòng)處理和繪圖的空間位置說明[10],并且也具有使用相關(guān)美學(xué)的處理操作方法,使其表現(xiàn)更具有豐富的說明特性以及較高的美觀程度。在完成基本繪制之后,可以采用R語言的顏色程序包,對(duì)圖形進(jìn)行上色,尤其對(duì)分類明顯的顏色信息,進(jìn)行鮮明顏色對(duì)比處理,突出表現(xiàn)繪制效果。
4 系統(tǒng)實(shí)現(xiàn)及其結(jié)果分析
4.1 系統(tǒng)主服務(wù)器的實(shí)現(xiàn)
本文采用的系統(tǒng)主服務(wù)器是基于JavaWeb的SprngMVC架構(gòu)來進(jìn)行設(shè)計(jì)和驗(yàn)證的,JavaWeb是基于典型的B/S架構(gòu),JavaWeb中實(shí)現(xiàn)Servlet組件和JSP組件、靜態(tài)文檔以及客戶端類和web.xml文件。在JavaWeb中,開源框架獲得極大的應(yīng)用,本系統(tǒng)是基于Sprng框架,主要是應(yīng)用Sprng框架中,OC技術(shù)使得不同模塊之間的交流讓容器自身去處理,在XML文件配置需要處理的規(guī)則,在編程開發(fā)前就把構(gòu)件對(duì)象的耦合問題解決掉。采用Jeecg的系統(tǒng)集成開發(fā)環(huán)境,主要是因?yàn)樵撈脚_(tái)具有開發(fā)效率高的優(yōu)點(diǎn),尤其是在U方面具有突出的表現(xiàn)優(yōu)點(diǎn),系統(tǒng)的運(yùn)行環(huán)境是jdk1.7、tomcat7.5和MySQL5.6,整個(gè)系統(tǒng)是從啟動(dòng)到運(yùn)行的全過程是利用Controller類成為框架的控制器,同時(shí)為了簡化配置,開啟注解的功能,配置好與注解相關(guān)的WebBndngntalzer類,通過Bean解析器,二次處理bean對(duì)象,攔截器的加載,便于開放系統(tǒng)的接口。
4.2 文件傳輸接口與R語言數(shù)據(jù)處理模塊的實(shí)現(xiàn)
圖7顯示文件傳輸接口主要分為兩個(gè)部分,第一個(gè)部分是文件上傳的功能,在等待文件上傳后的會(huì)實(shí)現(xiàn)onLoadSuccess方法和OnQueueComplete方法,針對(duì)數(shù)據(jù)完成上傳后,后續(xù)對(duì)數(shù)據(jù)進(jìn)行導(dǎo)入,導(dǎo)入的接口函數(shù)是ExcelmportUtl,該工具類接口函數(shù),可以直接調(diào)用,無需實(shí)例化,支持的字段很多,通常是nteger、Long、Double、Strng、Boolean等等常用數(shù)據(jù)類型,其實(shí)現(xiàn)的模塊圖如圖2所示。
針對(duì)R語言模塊的實(shí)現(xiàn),采用支持64位的語言程序包,集成的開發(fā)環(huán)境是RStudo,由于要與Java連接,需要中間服務(wù)器Rserve,在完成該服務(wù)器的搭建后,Java語言環(huán)境可以與R語言環(huán)境連接,實(shí)現(xiàn)R語言的功能,R語言在利用豐富的可視化函數(shù)方面具有很大的優(yōu)越性,利用JavaWeb提供的數(shù)據(jù)可視化接口,在用到的R語言分布函數(shù)如表4所示。
系統(tǒng)繪圖函數(shù)提供了豐富的繪圖模型,散點(diǎn)圖、折線圖和柱狀圖是其常用的展示接口函數(shù)模型,在獲得圖表信息的同時(shí),也實(shí)現(xiàn)了對(duì)繪圖過程中的信息表達(dá)。
4.3 系統(tǒng)測(cè)試結(jié)果與分析
在實(shí)現(xiàn)了該系統(tǒng)的整體模塊后,對(duì)于正常運(yùn)行的系統(tǒng)進(jìn)行測(cè)試,系統(tǒng)運(yùn)行的配置情況是CPU采用ntel酷睿7@2.7GHz,系統(tǒng)運(yùn)行的內(nèi)存是16GB,采用DDR4 2133MHz。顯卡是英偉達(dá)GeForce GTX970M,硬盤的容量是2TB,運(yùn)行平臺(tái)的操作系統(tǒng)是微軟Wndows8.1 64位旗艦版。系統(tǒng)的用戶登入系統(tǒng)的頁面如圖3所示,輸入正確的用戶與密碼可以進(jìn)入到系統(tǒng)中,后面的界面顯示,系統(tǒng)首頁的導(dǎo)航規(guī)劃信息如下圖4所示,采取一個(gè)針對(duì)用戶使用市場(chǎng)上不同瀏覽器的份額的數(shù)據(jù)信息,顯示出較為詳細(xì)的用戶信息描述,如圖5所示。
針對(duì)系統(tǒng)的安全性測(cè)試,測(cè)試結(jié)果如表5所示。
本系統(tǒng)表單的提交由對(duì)象的具體屬性來做出判斷。針對(duì)業(yè)務(wù)中的訪問結(jié)果,不僅SQL語句無法注入,而且對(duì)于MySQL等新式函數(shù)也無法注入訪問結(jié)果。
5 總結(jié)
本文在基于R語言和JavaWeb的開發(fā)過程中,設(shè)計(jì)了數(shù)據(jù)可視化平臺(tái),直接將系統(tǒng)布置到主機(jī)上,在服務(wù)器端部分作出了相關(guān)的數(shù)據(jù)處理和數(shù)據(jù)展示,也是在上文提到的硬件環(huán)境中,成功運(yùn)行加載了軟件功能,在整體模塊中合理劃分,實(shí)現(xiàn)相應(yīng)的數(shù)據(jù)接口。在后續(xù)的研究開發(fā)中,需要加入完善可視化算法的工作,并且可在后面利用網(wǎng)絡(luò)爬蟲得到數(shù)據(jù)信息生成一些可視化的數(shù)據(jù)圖形,幫助解決實(shí)際的數(shù)據(jù)問題。
參考文獻(xiàn)
[1] 陳偉, Smelauskas Wally. 大數(shù)據(jù)環(huán)境下基于數(shù)據(jù)可視化技術(shù)的電子數(shù)據(jù)審計(jì)方法[J]. 中國注冊(cè)會(huì)計(jì)師, 2017(1):85-89.
[2] 崔靜安, 周通, 趙紅慶, 等. 基于數(shù)據(jù)可視化技術(shù)的供電服務(wù)質(zhì)量提升研究[J]. 電子科技, 2017, 30(12):139-142.
[3] 姜勇, 韋朝奧, 陳紹輝, 等. 基于PDCA的設(shè)備資產(chǎn)數(shù)據(jù)可視化分析技術(shù)研究[J]. 機(jī)電信息, 2018, 549(15):117-119.
[4] 劉倩, 朱德軍, 單雅琦. 基于數(shù)據(jù)可視化的遠(yuǎn)程培訓(xùn)指標(biāo)平臺(tái)研究[J]. 電腦知識(shí)與技術(shù), 2018, 14(5X):86-87.
[5] 劉長娥. 數(shù)據(jù)可視化技術(shù)在Web中的研究及應(yīng)用[J]. 電腦知識(shí)與技術(shù), 2017, 13(18):7-8.
[6] 杜景林, 喻亞楠. 基于SSH框架的NC數(shù)據(jù)可視化驗(yàn)證系統(tǒng)研究[J]. 現(xiàn)代電子技術(shù), 2018, 41(2):166-169.
[7] 高斐, 蘇晨, 陳梅. 多維數(shù)據(jù)可視化技術(shù)的應(yīng)用探究[J]. 電腦知識(shí)與技術(shù), 2018(5):216-217.
[8] 宋美娜, 崔丹陽, 鄂海紅,等. 一種通用的數(shù)據(jù)可視化模型設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2017, 34(9):38-42.
[9] 周建功. 數(shù)據(jù)可視化技術(shù)在政務(wù)大數(shù)據(jù)中的應(yīng)用研究[J]. 電腦知識(shí)與技術(shù), 2018, 14(18):279-280.
[10] 陳海輝, 周向東, 施伯樂. 基于稀疏正則化的高維數(shù)據(jù)可視化分析技術(shù)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2017, 34(6):22-26.
(收稿日期: 2019.06.12)
作者簡介:邵全勇(1970-),男,青海人,碩士,高級(jí)講師,研究方向:思想政治教育,漢語言文學(xué)等。文章編號(hào):1007-757X(2020)01-0144-05