亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        D3的數(shù)據(jù)可視化與應(yīng)用

        2016-10-13 07:45:35金昱成
        移動(dòng)信息 2016年6期
        關(guān)鍵詞:圖表可視化定義

        金昱成 張 東

        ?

        D3的數(shù)據(jù)可視化與應(yīng)用

        金昱成 張 東

        華東師范大學(xué) 經(jīng)濟(jì)與管理學(xué)部,上海 200241

        數(shù)據(jù)可視化自20世紀(jì)50年代誕生以來(lái),其概念與實(shí)現(xiàn)平臺(tái)都得到與時(shí)俱進(jìn)的擴(kuò)充。當(dāng)今信息時(shí)代和大數(shù)據(jù)時(shí)代的到來(lái)又給可視化注入了新的元素。因此,以追溯數(shù)據(jù)可視化歷史、分析其技術(shù)含量為背景,著重介紹D3這一可視化平臺(tái),歸納出D3繪制五種圖表的強(qiáng)大功能,用具體的條形圖繪制案例說(shuō)明D3的語(yǔ)法要求與使用方法,并通過(guò)交叉篩選器展示D3的廣泛實(shí)用性。由此認(rèn)為,D3作為一種數(shù)據(jù)可視化的重要實(shí)現(xiàn)平臺(tái),具有極大的挖掘空間。

        數(shù)據(jù)可視化;D3;可視化應(yīng)用;可視化工具

        1 數(shù)據(jù)可視化與D3

        數(shù)據(jù)可視化(Data Visualization)是以依據(jù)某種概要形式抽提出來(lái)的信息為基礎(chǔ)的關(guān)于數(shù)據(jù)視覺(jué)表現(xiàn)形式的研究。這一概念可以追溯到20世紀(jì)50年代的計(jì)算機(jī)圖形學(xué)領(lǐng)域,并且伴隨著其平臺(tái)不斷深入擴(kuò)展,應(yīng)用領(lǐng)域不斷拓寬,可視化表現(xiàn)形式也不斷深化。實(shí)時(shí)動(dòng)態(tài)可視化圖表和友好的用戶交互可視化也使得該項(xiàng)技術(shù)在統(tǒng)計(jì)學(xué)領(lǐng)域流行起來(lái)。由于逐漸滲入到不同學(xué)科領(lǐng)域,其地位也逐步提升。當(dāng)今,在大數(shù)據(jù)與可視化交融的年代,鋪天蓋地的數(shù)據(jù)量為數(shù)據(jù)可視化提供了新的契機(jī),出現(xiàn)了諸多平臺(tái),如R語(yǔ)言,Google套件,Tableau等。[1]

        D3,也稱作d3.js,全稱為Data-Driven Documen ts(數(shù)據(jù)驅(qū)動(dòng)的文檔),是一款基于數(shù)據(jù)文檔操作的JavaScript工具,把數(shù)據(jù)和HTML、SVG、CSS等其他語(yǔ)言相結(jié)合,用于創(chuàng)建可交互的數(shù)據(jù)可視化圖表。其開(kāi)發(fā)起源于2011年斯坦福大學(xué)研究室有關(guān)數(shù)據(jù)驅(qū)動(dòng)文檔Javascript的若干論文。它不僅開(kāi)源免費(fèi),且功能強(qiáng)大,可以繪制以下幾種類型圖表:(1)基本統(tǒng)計(jì)圖表(如箱線圖、條形圖、餅狀圖、時(shí)間序列圖等);(2)動(dòng)態(tài)統(tǒng)計(jì)視圖(例如篩選器,動(dòng)態(tài)樹(shù)圖);(3)關(guān)系圖(表示數(shù)據(jù)間關(guān)系的圖表,如聚類圖、動(dòng)態(tài)文件夾); (4)區(qū)域視圖(例如美國(guó)數(shù)據(jù)地圖、區(qū)域氣溫圖); (5)數(shù)據(jù)動(dòng)畫(huà)(根據(jù)需求定義網(wǎng)頁(yè)動(dòng)畫(huà),如俄羅斯方塊、精子圖、水滴圖)。[2]

        D3的調(diào)用也尤為簡(jiǎn)單,可通過(guò)官網(wǎng)下載該JavaScript庫(kù)并完成本地調(diào)用。

        2 D3的使用方法

        通過(guò)繪制統(tǒng)計(jì)條形圖來(lái)說(shuō)明其使用方法。

        2.1 數(shù)據(jù)的讀取

        數(shù)據(jù)可視化離不開(kāi)數(shù)據(jù),D3可通過(guò)函數(shù)d3.csv( )或d3.json( )讀取對(duì)應(yīng)格式的數(shù)據(jù)。本章節(jié)中定義空集dataset,使用回調(diào)函數(shù)導(dǎo)入/New/data.csv中的數(shù)據(jù),代碼如下:

        var dataset; d3.csv("data1.csv",function (d){dataset=d.map(function(r){ });});

        return +r.low;

        2.2 元素的插入

        D3插入的圖形元素屬于可縮放矢量圖,簡(jiǎn)稱SVG,則需先創(chuàng)建SVG的圖幅“畫(huà)板”。[3]

        var svg = d3.select("body").append("svg"). attr("width",800).attr("height",300);

        該段代碼表示選中html中標(biāo)簽,并在其內(nèi)部創(chuàng)建800*300的圖幅。條形圖對(duì)應(yīng)的D3元素為rect,其綁定的數(shù)據(jù)集為讀取的dataset,最后向圖幅內(nèi)插入條形圖:

        svg.selectAll("rect").data(dataset).enter().append("rect").attr("x",function(d,i){return i*30;}).attr("y",function(d){return 0;}).attr ("width",25) .attr("height", function(d){return d;}).attr("fill",function(d){return "rgb(100,170,"+(d*10-20)+")";})

        其中.data()函數(shù)用于綁定數(shù)據(jù)集,.enter()完成占位引用,.append()添加rect標(biāo)簽并插入條形。.attr()用于設(shè)置SVG的顏色、長(zhǎng)度、位置等若干屬性。最后使用.text()函數(shù)為每個(gè)條形添加其對(duì)應(yīng)的數(shù)值:

        svg.selectAll("text").data(dataset).enter().append("text").text(function(d){return d;}). attr("x",function(d,i){return i*30+5;}) .attr ("y",function(d){return h-4*d+9;})

        經(jīng)過(guò)適當(dāng)?shù)奈恢谜{(diào)整,我們得到如下初步條形,詳見(jiàn)圖1。

        圖1 初步制作條形圖

        2.3 作品生成與美化

        為使條形圖更加貼近統(tǒng)計(jì)意義,進(jìn)行如下優(yōu)化:

        2.3.1 標(biāo)簽文字樣式設(shè)計(jì)

        條形對(duì)應(yīng)的數(shù)值(文字)樣式也能自行設(shè)計(jì)。與上述相同,使用.attr()對(duì)文字的大?。╢ont-size),字體(font-family)以及文字的顏色(fill) 進(jìn)行設(shè)置,代碼如下:

        .attr("font-family","sans-serif").attr("fo nt-size","11px") .attr("fill","white");

        2.3.2 比例尺自動(dòng)化

        前面設(shè)計(jì)的圖幅面積和位置為人為給定的?,F(xiàn)引入比例尺,使條帶的長(zhǎng)與寬自動(dòng)調(diào)節(jié),且布置于圖幅的適當(dāng)位置。[4]在此選用線性比例尺,按照線性比例進(jìn)行縮放:

        var xScale = d3.scale.linear().domain([0,d3.max(dataset,function(d,i){return i})]).range ([0,w-50]);

        上述分別定義橫軸線性比例尺(.scale.linear())及其定義域?yàn)閇0,dmax],原數(shù)值按照線性比例縮放到整個(gè)圖幅之內(nèi)。[5]相似的,也可用同樣的方法對(duì)縱軸進(jìn)行操作。

        2.3.3 添加坐標(biāo)軸

        D3允許向條形圖中插入SVG元素的坐標(biāo)軸。為此使用.svg.axis()定義一組坐標(biāo)軸:

        var xAxis = d3.svg.axis() .scale(xScale) .o rient("bottom").ticks(30) ;

        .orient()設(shè)置坐標(biāo)軸的方位,.ticks()設(shè)置坐標(biāo)軸的刻度線數(shù)量。定義后便可向條形圖內(nèi)插入坐標(biāo)軸:

        svg.append("g").call(xAxis).attr("class","axis").attr("transform","translate(30,270)");

        這里D3使用.append()命令向HTML中添加標(biāo)簽,使用.call( )命令引用坐標(biāo)軸。經(jīng)過(guò)若干CSS樣式修改后,最終基于D3的制作的條形圖如圖2所示。

        圖2 使用D3制作的條形圖成品

        通過(guò)D3制作的條形圖不僅更加豐富了數(shù)據(jù)可視化的成果,又能夠借此來(lái)了解D3的工作方法,按照“讀取數(shù)據(jù)”——“定義元素”——“插入元素”的方法進(jìn)行處理。D3能夠快速的讀取數(shù)據(jù)并插入SVG,圖形的所有屬性都可以自定義處理,D3與CSS協(xié)同工作整體化處理圖形的樣式,對(duì)于數(shù)據(jù)開(kāi)發(fā)和研究者不失為一種極佳的選擇。[6]

        3 D3的應(yīng)用案例

        D3功能強(qiáng)大,圖形豐富,具有很強(qiáng)的操作性。下文將通過(guò)交叉篩選器的案例展現(xiàn)它的廣泛用途。

        交叉篩選器(Crossfilter)是一種通過(guò)交叉選擇條件從而實(shí)現(xiàn)篩選的數(shù)據(jù)可視化功能。篩選將數(shù)據(jù)用各種統(tǒng)計(jì)類型圖表加以可視化進(jìn)行選擇,篩選的結(jié)果由數(shù)據(jù)框加以呈現(xiàn),在顯示總數(shù)據(jù)個(gè)數(shù)的同時(shí)又可以統(tǒng)計(jì)出滿足用戶定義條件的數(shù)據(jù)量,不僅能夠方便普通人對(duì)數(shù)據(jù)的篩選和查看,還能夠通過(guò)美化后的數(shù)據(jù)篩選來(lái)進(jìn)行數(shù)據(jù)的查找,探尋數(shù)據(jù)規(guī)律。

        本案例中設(shè)計(jì)的交叉篩選器名稱為“模擬在職教師論文發(fā)布審核統(tǒng)計(jì)表”,其中數(shù)據(jù)通過(guò)模擬產(chǎn)生。在設(shè)置方面,我們將篩選器以條形圖,餅狀圖和橫向柱狀圖呈現(xiàn),篩選的結(jié)果在最下方的數(shù)據(jù)框加以展現(xiàn),參見(jiàn)圖3。

        圖3 基于D3制作的交叉篩選器

        條形圖可篩選數(shù)據(jù)中的發(fā)表日期,橫坐標(biāo)以日為單位,縱坐標(biāo)表示發(fā)表文章的數(shù)據(jù)量;餅狀圖用來(lái)篩選文章發(fā)表者的姓名,與顏色相對(duì)應(yīng),并在各自區(qū)域加以標(biāo)注;柱狀圖可篩選文章是否通過(guò)審核;數(shù)據(jù)框用來(lái)展現(xiàn)篩選出的結(jié)果。三個(gè)篩選器可實(shí)現(xiàn)交叉篩選,點(diǎn)擊“重新選擇”即可還原篩選器至初始狀態(tài)。

        交叉篩選器將復(fù)雜枯燥的數(shù)據(jù)篩選通過(guò)圖形化加以動(dòng)態(tài)展示,可以應(yīng)用于審核系統(tǒng)、數(shù)據(jù)查詢體系等多個(gè)領(lǐng)域,是D3的重要應(yīng)用。與其他工具制作相比,D3搭建的交叉篩選器出色地完成多項(xiàng)篩選任務(wù),更有流暢的動(dòng)畫(huà)增添美學(xué)效果。使用者可以根據(jù)自己的需求設(shè)置各個(gè)組件元素的位置,實(shí)現(xiàn)整體的統(tǒng)一。

        4 總結(jié)

        綜上所述,D3能夠把自定義的可視化元素與數(shù)據(jù)進(jìn)行綁定并插入到網(wǎng)頁(yè)之中,實(shí)現(xiàn)快捷而美觀的數(shù)據(jù)可視化圖表,改變了人們對(duì)數(shù)據(jù)可視化傳統(tǒng)意義上的認(rèn)識(shí),為可視化提供了一個(gè)新的基礎(chǔ)性平臺(tái)。而D3作為數(shù)據(jù)可視化的一個(gè)重要實(shí)現(xiàn)平臺(tái),豐富了可視化在現(xiàn)實(shí)生活中的意義,拓寬了可視化的渠道多樣性,并且賦予了可視化自定義創(chuàng)新的可能。與其他平臺(tái)相比,D3憑借其操作個(gè)性化和圖表多樣化更具有競(jìng)爭(zhēng)力,并且D3已經(jīng)作為一個(gè)基礎(chǔ)庫(kù)被深入開(kāi)發(fā),例如對(duì)D3做統(tǒng)計(jì)篩選器方面的深度挖掘就得到了dc.js。由此可見(jiàn),D3還有很大的空間等待我們?nèi)ヌ剿鳌?/p>

        [1]Scott Murray.Interactive Data Visualization for the Web[M].CA,OREILLY,2013:15-23,59-78.

        [2]Mike Dewar.Getting Started with D3[M].CA,OREILLY,2012:1-14.

        [3]en Fry.Visualizing Data[M].CA,OREILLY,2007:31-53.

        [4]Nick Qi Zhu.Data Visualization with D3.js Cookbook[M].Birmingham,PACKT,2013:1-6.

        [5]張浩,郭燦.數(shù)據(jù)可視化技術(shù)應(yīng)用趨勢(shì)與分類研究[J].軟件導(dǎo)刊,2012(5):169-172.

        [6]張運(yùn)良,張兆鋒,張曉丹,等.使用D3.js的知識(shí)組織系統(tǒng)Web動(dòng)態(tài)交互可視化功能實(shí)現(xiàn)[J].現(xiàn)代圖書(shū)情報(bào)技術(shù), 2013(7):127-131.

        Data Visualization and Application of D3

        Zhang Dong Jin Yucheng

        Department of economics and management East China Normal University,Shanghai 200241

        since the data visualization was born in the fifty's of the last century, the concept and implementation platform has been expanded with the times. In today's information age and the arrival of the era of big data has given a new visual elements. In this paper, tracing the history of data visualization, analyzing its technical content as the background, this paper focuses on the D3 visualization platform. The article mainly summarizes the D3 draw five kinds of graph's powerful function, use the concrete bar chart to draw the case to explain the D3 syntax request and the use method, and through the cross filter demonstration D3 wide practicality. The author believes that D3 is an important platform for data visualization, and it has a very high mining space.

        Data visualization; D3; visual application; visualization tools

        TP391.41

        A

        1009-6434(2016)6-0131-03

        猜你喜歡
        圖表可視化定義
        基于CiteSpace的足三里穴研究可視化分析
        基于Power BI的油田注水運(yùn)行動(dòng)態(tài)分析與可視化展示
        云南化工(2021年8期)2021-12-21 06:37:54
        基于CGAL和OpenGL的海底地形三維可視化
        “融評(píng)”:黨媒評(píng)論的可視化創(chuàng)新
        雙周圖表
        足球周刊(2016年14期)2016-11-02 10:54:56
        雙周圖表
        足球周刊(2016年10期)2016-10-08 18:30:55
        圖表
        世界博覽(2016年16期)2016-09-27 18:25:26
        成功的定義
        山東青年(2016年1期)2016-02-28 14:25:25
        修辭學(xué)的重大定義
        山的定義
        国内精品一区二区三区| 中文字幕 亚洲精品 第1页| 成年女人免费视频播放体验区| 少妇人妻在线视频| 制服丝袜人妻中出第一页| 日本a级片一区二区三区| 深夜福利啪啪片| 久久精品99国产精品日本| 欧洲freexxxx性少妇播放| 精品无码AV无码免费专区| 俺来也三区四区高清视频在线观看| 中文字幕本久久精品一区| 亚洲av无码一区二区三区不卡| 亚洲区小说区图片区qvod伊| 国产一区二区av男人| 国产亚洲一区二区三区综合片| 精品国产一区av天美传媒| 国产V日韩V亚洲欧美久久| 国产成人久久精品二区三区| 国产精品亚洲一区二区三区| av无码久久久久不卡网站下载| 久草热这里只有精品在线| 日韩av中文字幕波多野九色| 超碰97人人射妻| 妺妺窝人体色www在线图片 | 中文字幕无码日韩专区免费| 国产成人亚洲精品电影| 中文字幕熟女激情50路| av免费不卡国产观看| 好爽…又高潮了毛片免费看| 日韩熟女一区二区三区| 中国一级黄色片久久久| 亚洲av永久无码精品一区二区| 久久婷婷国产精品香蕉| 91久久精品美女高潮喷白浆| 国产午夜伦鲁鲁| 夜夜春精品视频| 精品免费久久久久国产一区| 一区二区中文字幕在线观看污污| 人妻无码中文字幕| 精品四虎免费观看国产高清 |