嚴(yán)蕊 貴陽永青儀電科技有限公司
引言:數(shù)據(jù)可視化的概念一直處于不斷變化的過程,可視化是指把不可見的數(shù)據(jù)現(xiàn)象轉(zhuǎn)變成為可見的圖形現(xiàn)象,給一些錯綜復(fù)雜、看起來毫無規(guī)律,沒辦法及時解釋和關(guān)聯(lián)的數(shù)據(jù)建立起聯(lián)系和關(guān)聯(lián),是我們能及時有效的發(fā)現(xiàn)數(shù)據(jù)的規(guī)律和特征。
將數(shù)據(jù)的可視化展現(xiàn)在人們常用的智能移動設(shè)備上是一個很好的結(jié)合,既方便了能夠用戶隨時掏出手機工作,直接查看數(shù)據(jù)圖像從而對所需項目,進行分析、規(guī)劃、調(diào)整等等操作。
本設(shè)計分為兩個模塊,分別為數(shù)據(jù)統(tǒng)計分析和數(shù)據(jù)可視化??傮w方案流程圖如圖1所示:
圖1 總體方案流程圖
SQLite,作為一款輕型的數(shù)據(jù)庫,支持的操作系統(tǒng)非常多,包括Windows/Linux/Unix等等一些主流的操作系統(tǒng)。與此同時,很多程序語言都能與之相結(jié)合,比如 Tcl、C#、PHP、Java等等常用的語言。
本設(shè)計采用基于Android操作平臺的移動終端。移動終端是近紅外指標(biāo)數(shù)據(jù)信息可視化界面的物理載體,它主要負(fù)責(zé)從本地存儲的SQLite數(shù)據(jù)庫中獲取數(shù)據(jù)信息,移動終端獲取數(shù)據(jù)后在觸摸屏上以一定的可視化方法進行界面展示,并通過數(shù)據(jù)分析和處理展示,使用戶可以對指標(biāo)數(shù)據(jù)狀態(tài)一目了然,并對產(chǎn)品生產(chǎn)是的含量等數(shù)據(jù)進行調(diào)整。
數(shù)據(jù)部分使用SQLite數(shù)據(jù)庫進行存儲,存儲位置在移動終端內(nèi)部SDCard中。可視化部分,使用Android Studio開發(fā)工具搭建Android平臺,利用第三方控件Achartengine實現(xiàn)以圖表的方式展現(xiàn)數(shù)據(jù)。
Achartengine是一個Android應(yīng)用的圖表庫,是一個通用的第三方控件,支持一些常見的圖表,所有支持的圖表類型還可以包含多個系列,可以顯示與x軸水平(默認(rèn))或垂直和支持許多其他自定義功能。
(1)運行機制:
Achartengine運行每一個圖表都需要數(shù)據(jù)集(Dataset)和渲染集(Renderer),其中數(shù)據(jù)集由很多數(shù)據(jù)組成,渲染集由不相同的子渲染器組成。生成帶圖表的GraphicalView 或者 GraphicalActivity,需要通過圖表工廠 (ChartFactory) 去調(diào)用 數(shù)據(jù)集 (Dataset) 和渲染器集合 (Renderer)。
圖2 Achartengine運行機制
(2)相關(guān)類與方法:
XYMultipleSeriesDataset(數(shù)據(jù)集,用來封裝所需要的數(shù)據(jù))、XYSeries (圖表數(shù)據(jù)集的其中一部分, 每個代表一個數(shù)據(jù)集合,比如說折線, 一個圖表里面能夠包含多條折線, 所有的折線的數(shù)據(jù)放在一起就稱為數(shù)據(jù)集 XYMultipleSeriesDataset)、XYMultipleSeriesRenderer ( 渲染器的集合, 圖表里許多個曲線的渲染器)、XYSeriesRenderer (單條曲線或單元的渲染器, 舉個例子,一個圖表中可能存在多條曲線或者點等, 每條曲線或者每個點都需要一個渲染器, 所有的渲染器集合在一起就是渲染器集合XYMultipleSeriesRenderer)。
(3)渲染器:
它的作用是定義圖形的外觀樣式,如顏色、字體、線條、圖例樣式等等,API主要是Default Renderer(默認(rèn)渲染器)、簡單渲染Simple Series Renderer及它的子類。
(4)數(shù)據(jù)填充器:
在創(chuàng)建圖表的時候需要的數(shù)據(jù)的集合,填充器的選擇要根據(jù)View決定,我們創(chuàng)建不同的View,需要的數(shù)據(jù)填充器是不一樣的,填充器類有許多,比如說XY系列圖表數(shù)據(jù)填器XYMultipleSeriesDataset、日期/時間圖表填充器Time Series、餅圖數(shù)據(jù)填充器CategorySeries等等。
(5)圖表View:用于顯示具體的不同的圖表類型。
(1)平均值(average value):分為幾種形式的平均值,有算數(shù)平均值、幾何平均值、加權(quán)平均值等等。其中最普遍運用的是算數(shù)平均值,由公式:
(2)標(biāo)準(zhǔn)偏差(Std Dev,Standard Deviation):作為反映數(shù)據(jù)分布的離散程度的標(biāo)準(zhǔn),用來衡量數(shù)據(jù)值偏離算數(shù)平均值的程度,從標(biāo)準(zhǔn)偏差的值來看,標(biāo)準(zhǔn)偏差越小,則表示這些值偏離算數(shù)平均值就越少,反之,標(biāo)準(zhǔn)偏差越大,這些值偏離算數(shù)平均值就越多。一般用σ表示標(biāo)準(zhǔn)偏差,它是方差的算術(shù)平方根。標(biāo)準(zhǔn)偏差有總體標(biāo)準(zhǔn)偏差和樣本標(biāo)準(zhǔn)偏差,本設(shè)計采用的是樣本標(biāo)準(zhǔn)偏差,由公式:
(3)變異系數(shù)(Coefficient of Variation):用來衡量數(shù)據(jù)集中值得變異程度的一個統(tǒng)計量。變異系數(shù)也有多種,包括全距系數(shù)、平均差系數(shù)、標(biāo)準(zhǔn)差系數(shù)等等。當(dāng)單位或平均值不同的時候,如果我們要比較其變異程度,就不能使用標(biāo)準(zhǔn)偏差,而必須要采用標(biāo)準(zhǔn)偏差與平均值的比來進行比較。本設(shè)計采用標(biāo)準(zhǔn)差系數(shù)進行分析,標(biāo)準(zhǔn)變異系數(shù)是指一組數(shù)據(jù)的變異指標(biāo)和它平均值的指標(biāo)的比值,通常用CV(Coefficieut of Variance)表示。變異系數(shù)的作用是反映單位均值上面的離散程度。一般用在總體平均值不相同的離散程度的比較上,當(dāng)總體的均值相同時,就說明比較標(biāo)準(zhǔn)差系數(shù)和比較標(biāo)準(zhǔn)差沒有區(qū)別,二者是等價的,由公式:
異常值指的是在一組測量值里面,測量值和平均值的偏差超過了兩倍標(biāo)準(zhǔn)差的值,其中超過了三倍標(biāo)準(zhǔn)差的值成為高度異常值,我們在處理數(shù)據(jù)的時候,一般排除掉高度異常值。本設(shè)計中采用的是格拉布斯準(zhǔn)測法(Grubbs)來實現(xiàn)對異常值得找出。我們使用貝塞爾公式求平均值的標(biāo)準(zhǔn)偏差(u表示殘差),由公式:
頻數(shù)直方圖中,y軸表示頻數(shù),由許多個寬與組距相等、面積用來表示頻數(shù)的長方形組成的統(tǒng)計圖。它具有的特點是能清楚的顯示每個組頻數(shù)的分布情況,也能容易的顯示各個組之間頻數(shù)的差異。在運用頻數(shù)直方圖前,我們需要明確幾個基本名詞的概念。首先是頻數(shù),我們在對數(shù)據(jù)進行統(tǒng)計記錄是可以發(fā)現(xiàn),數(shù)據(jù)有可能出現(xiàn)多次,出現(xiàn)的次數(shù)有多有少,也就是說他們出現(xiàn)的頻繁程度各不相同,這時候,我們把每個數(shù)據(jù)出現(xiàn)的次數(shù)稱之為頻數(shù)。我們所選取的樣本個數(shù)比較多,把這些樣本分為數(shù)量相同的組,把組的個數(shù)成為組數(shù),每個組的兩個端點之間的距離叫做組距,在計算組距時,我們要知道極差R,極差指的是一組數(shù)據(jù)中最大值L和最小是S的差,由公式:
做出頻數(shù)直方圖的方法不難,步驟如下:
a.找出數(shù)據(jù)的最大值L和最小值S,計算極差;
b.決定組數(shù),計算組距;
c.確定分點;
d.列出頻數(shù)分布表;
e.畫出頻數(shù)直方圖。
首先從煙葉原煙近紅外光譜分析物聯(lián)網(wǎng)系統(tǒng)獲得關(guān)于煙草的近紅外指標(biāo)數(shù)據(jù)信息。我們進入系統(tǒng)中的C類統(tǒng)計獲取數(shù)據(jù),C類基礎(chǔ)統(tǒng)計詳細(xì)的描述了當(dāng)前用戶有權(quán)限的單位在不同年份的樣品數(shù)量、等級數(shù)量、品種數(shù)量、省份、地州、市縣、站的數(shù)據(jù)量并進行求和統(tǒng)計,通過檢索、數(shù)據(jù)分析、導(dǎo)出等操作獲得可視化所需的近紅外指標(biāo)基礎(chǔ)數(shù)據(jù)源。
(1)縮放顯示圖表:用戶可通過兩指之間的手勢滑動操作,使圖表實現(xiàn)放大與縮小功能。
(2)制定區(qū)間選取并顯示該放大區(qū)間圖表:用戶通過放大圖表,移動圖表獲取自己想要獲取的圖表區(qū)間讀取數(shù)據(jù)信息。
(3)從圖上選點,與數(shù)據(jù)關(guān)聯(lián)并顯示詳細(xì)數(shù)據(jù):當(dāng)用戶通過點擊數(shù)據(jù)圖表上的點,獲得一個彈框,彈框內(nèi)將根據(jù)圖表特征顯示點或區(qū)間的坐標(biāo)和其他數(shù)據(jù)信息。
(1)差異分析:對不同地區(qū)、品種、等級的煙葉總糖、總氮、還原糖、煙堿、鉀、氯含量進行分析,不同品種差異部分分析如表1 所示
表一 品種差異分析表
(2)排除數(shù)據(jù)異常值:由計算可得,標(biāo)準(zhǔn)偏差σ=0.371,所以3σ=1.113,同時由表所知, 的最大值為3.630,其中只有最大值3.630大于3σ,所以楚雄州煙草鉀含量的異常數(shù)據(jù)為3.630,通過渲染器等實現(xiàn)可視化。
(3)頻數(shù)直方圖:以昆明市的煙草總糖、總氮、還原糖、煙堿、鉀、氯含量為例,分別選取100個樣本數(shù)據(jù)進行統(tǒng)計分析,得出各個頻數(shù)分布表。昆明市2015年煙草總糖含量選取100個樣本數(shù)據(jù),分為9個組,組距為4。
結(jié)論:我們將分析結(jié)果中不同品種化學(xué)含量差異分析數(shù)據(jù)六項指標(biāo)進行可視化,采用Achartengine第三方控件在Android工程下編寫程序,創(chuàng)建數(shù)據(jù)填充器填充數(shù)據(jù),創(chuàng)建渲染器對圖表的屬性進行定義,最后獲取Intent對象,顯示圖表 View。