衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

指引入門(mén)d3.js的門(mén)徑,如何基于基本原則創(chuàng)建可視化?

zhKF_jqr_AI ? 來(lái)源:未知 ? 作者:李倩 ? 2018-11-08 09:03 ? 次閱讀

編者按:Google數(shù)據(jù)可視化工程師Ian Johnson指引了入門(mén)d3.js的門(mén)徑。

d3是一個(gè)豐富、廣闊,有時(shí)危險(xiǎn)的學(xué)習(xí)領(lǐng)域。d3的API文檔上長(zhǎng)長(zhǎng)的函數(shù)列表也許嚇壞了你,d3主頁(yè)上列出的幾十篇教程也許讓你難以選擇。有超過(guò)兩萬(wàn)個(gè)d3示例可供學(xué)習(xí),但你永遠(yuǎn)不知道給定的示例是否容易理解。

如果你需要的只是快速實(shí)現(xiàn)柱狀圖或線圖,也許這篇文章不適合你,有大量制作圖表的庫(kù)可用。如果你更喜歡看書(shū),那么Scott Murray的Interactive Data Visualization for the Web是一個(gè)很好的起點(diǎn),而Elijah Meeks的D3.js in Action比較全面地深入了部分API.

我希望這篇指南能幫助你在心智上做好理解d3的準(zhǔn)備,并指出一些值得探索的方向。除了d3.js的API外,還有很多需要學(xué)習(xí),既包括web標(biāo)準(zhǔn)方面的技術(shù)知識(shí),例如HTML、SVG、CSS、JavaScript,也包括溝通概念和數(shù)據(jù)可視化原則。你大概已經(jīng)對(duì)此有所了解,所以這篇指南試圖為你提供一個(gè)良好的起點(diǎn),幫助你學(xué)習(xí)更多你想要深入的內(nèi)容。

溝通復(fù)雜概念

圖片來(lái)源:r2d3

在我們深入數(shù)據(jù)可視化原則和技術(shù)之前,先讓我們花點(diǎn)時(shí)間樹(shù)立下雄心壯志。有許多驚人的例子展現(xiàn)了d3的可能性,包括紐約時(shí)報(bào)文章、r2d3、distill.pub、datasketch|es、polygrah、ncase。如果我這里遺漏了什么,請(qǐng)留言告知。

不過(guò)不要僅僅艷羨別人,你需要樹(shù)立自己的雄心壯志,這是最重要的事情之一。我從一些使用d3.js的頂尖數(shù)據(jù)可視化從業(yè)者的訪談那里學(xué)到的是,最佳學(xué)習(xí)方法之一是預(yù)想你真心想要?jiǎng)?chuàng)建的東西,然后弄清楚創(chuàng)建它你需要做什么。

可視化表示

D3并沒(méi)有引入新的可視化表示。不同于Processing、Rapha?l、Protovis,D3的圖形記號(hào)詞匯直接來(lái)自于web標(biāo)準(zhǔn):HTML、SVG、CSS。

-- http://d3js.org

圖表不過(guò)是內(nèi)有形狀的矩形。d3提供了方法,通過(guò)操作圖形記號(hào)或創(chuàng)建自己的形狀來(lái)定義你自己的可視化表示。d3使加入視覺(jué)交互和聲明可視化行為變得容易。你將在這里學(xué)習(xí)表達(dá)不可能使用其他媒介表達(dá)的東西。

如果你想要了解這些不同類(lèi)型的記號(hào)背后的原則,還有人們使用的不同種類(lèi)的圖形表示,不要錯(cuò)過(guò)Grammar of Graphics一書(shū)。

不過(guò)不用擔(dān)心,僅僅基于圓圈、矩形和仔細(xì)的布局,你就可以創(chuàng)建海量有創(chuàng)意的東西。從簡(jiǎn)單的東西開(kāi)始,總是嘗試讓屏幕顯示點(diǎn)什么,然后基于這個(gè)原型開(kāi)始正式創(chuàng)建過(guò)程。

基于web

圖片來(lái)源:visualcinnamon.com

使用d3.js的原因之一是你可以立刻和任何使用web瀏覽器的人(地球上至少一半人?。┓窒碜髌?。這意味著在開(kāi)始調(diào)用d3 API函數(shù)前,你需要了解SVG、HTML、CSS基礎(chǔ)。如果你想渲染大量數(shù)據(jù),那么你大概也會(huì)想要學(xué)一點(diǎn)Canvas(別擔(dān)心,某種程度上說(shuō),它實(shí)際上比SVG要好學(xué))。掌握了d3和Canvas的基礎(chǔ)后,我推薦lars verspohl寫(xiě)的D3 and Canvas in 3 steps這篇出色的中級(jí)教程。

至于SVG,我推薦你從Scott Murray的SVG primer開(kāi)始,這篇簡(jiǎn)短易讀的教程介紹了SVG的初步知識(shí)。建議你親自動(dòng)手試驗(yàn),手工創(chuàng)建SVG元素,看看它們是如何工作的。你可以使用BlockBuilder這樣的工具快速上手,無(wú)需配置任何開(kāi)發(fā)環(huán)境。另外,你可能需要參考MDN上的SVG文檔。掌握了基礎(chǔ)之后,推薦閱讀Nadieh Bremer的SVG beyond mere shapes。

blockbuilder.org

你不用直接使用SVG制作可視化,使用d3操作

之類(lèi)的HTML元素是相對(duì)常見(jiàn)的做法。為了取得良好效果,你需要熟悉CSS定位。你甚至可以一下子混合HTML、SVG、Canvas。

搞明白應(yīng)該使用那個(gè)渲染系統(tǒng)可能就讓你有點(diǎn)不堪重負(fù)了,更別說(shuō)弄清楚如何使用任何一個(gè)渲染系統(tǒng)了。這里重申下,開(kāi)始學(xué)習(xí)d3.js之前需要了解HTML、CSS、SVG(和一點(diǎn)Canvas)的基礎(chǔ),這很重要。

d3.js入門(mén)

圖片來(lái)源:d3js.org

如何基于基本原則創(chuàng)建可視化?使用大量工具函數(shù)逐一創(chuàng)建。你大概已經(jīng)知道d3的API十分繁多,所以這里我們列出在入門(mén)階段特別有幫助的一些工具。

d3-scale

scale的常見(jiàn)用途之一是顏色

d3工具箱中最基礎(chǔ)的工具之一是scale??梢詮腗ike Bostock寫(xiě)的Introducing d3-scale這篇概覽入手,了解什么是scale,如何使用scale。不管創(chuàng)建的是什么樣的可視化,你多半會(huì)使用至少一種scale。

d3-shape

streamgraph

手寫(xiě)SVG路徑相當(dāng)麻煩(參見(jiàn)Chris Coyier的The SVG path Syntax: An Illustrated Guide),而d3-shape包含了一些函數(shù),在某些使用場(chǎng)景下,這些函數(shù)使創(chuàng)建、操作SVG路徑更容易。閱讀Mike Bostock的Introducing d3-shape這篇概覽,可以了解d3-shape提供了什么,如何開(kāi)始使用d3-shape。只需增加一行代碼,d3-shape就可以渲染線條、區(qū)域、任意路徑為Canvas。

d3-selection

d3最難學(xué)習(xí)的部分之一是它的selection系統(tǒng),也稱(chēng)為一般更新模式。在內(nèi)化這一部分之前,我有幾個(gè)月的時(shí)間被它折磨得用頭撞桌子,但是別讓這一點(diǎn)嚇跑了你!實(shí)際上,你無(wú)需精通selection,就可以做出大量酷炫的東西。當(dāng)你準(zhǔn)備好深入這一主題的時(shí)候,你可以從d3-selection的README開(kāi)始,別忘了點(diǎn)擊上面的列出的鏈接,比如Mike Bostock的Thinking with Joins。

d3-collection

操作數(shù)據(jù)是可視化的一個(gè)極為重要的部分。取決于數(shù)據(jù)有多好,以及你對(duì)數(shù)據(jù)理解多少,這可能經(jīng)常是最困難的部分。掌握更多處理數(shù)據(jù)的工具(重整形狀、切片、聚合)很有幫助。在這方面我建議熟悉下d3-collection,特別是它的nest函數(shù)。

d3-hierarchy

樹(shù)形圖

繼續(xù)處理數(shù)據(jù)這一主題,許多可視化的關(guān)鍵部分在于基于數(shù)據(jù)的結(jié)構(gòu)布局視覺(jué)表示。你可以在d3-hierarchy中找到一些常用的函數(shù),可用于制作樹(shù)圖(tree)、樹(shù)形圖(treemap)、圓圈包(circle pack)。

d3-zoom

也許你想給可視化加上縮放這一常用的交互行為。Mike Bostock給出了一系列基于d3-zoom在可視化中增加縮放的各種方法:http://blockbuilder.org/search?text=zoom&user=mbostock&d3version=v4

別忘了查看下d3-zoom的表兄弟d3-drag,它提供了拖放等交互行為。

d3-force

d3很有啟發(fā)性的能力之一是力布局。力布局易學(xué)難工,可別被它推向黑暗面?。ㄗg者注:這里作者用了一個(gè)雙關(guān)。力布局原文為force layout,星戰(zhàn)中的原力用的也是force一詞,原力具有黑暗面。)參考GitHub的d3/d3-force文檔了解詳情。

搜索!

最后提供一個(gè)小竅門(mén),通過(guò)BlockBuilder的搜索功能你可以查找任何API函數(shù)的用法。你還可以限制搜索的d3版本。

社區(qū)

d3.js的slack頻道是一個(gè)很活躍的線上社區(qū)。如果你想?yún)⒓泳€下聚會(huì),那么舊金山灣區(qū)的用戶組是最大的d3.js用戶組之一,不過(guò),你大概能找到幾個(gè)離你較近的用戶組。另外,每年秋季,都在舊金山召開(kāi)年度d3.unconf

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    62968
  • 可視化
    +關(guān)注

    關(guān)注

    1

    文章

    1200

    瀏覽量

    21033

原文標(biāo)題:d3.js漫游指南

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    光學(xué)系統(tǒng)的3D可視化

    視圖 3D 系統(tǒng)視圖: 無(wú)光可視化系統(tǒng) 選項(xiàng) - 選擇要顯示的元件 右鍵單擊文檔窗口,菜單上將顯示詳細(xì)選項(xiàng)。第一個(gè)選項(xiàng) \"Select Elements to Show\"
    發(fā)表于 01-06 08:53

    七款經(jīng)久不衰的數(shù)據(jù)可視化工具!

    工具 · D3.jsD3.js 是一個(gè)基于 JavaScript 的數(shù)據(jù)可視化庫(kù),允許開(kāi)發(fā)者創(chuàng)建豐富的交互式圖表。它具有極大的靈活性,但需要編程知識(shí),因此適合開(kāi)發(fā)者或具有技術(shù)背景的
    發(fā)表于 01-19 15:24

    MOS設(shè)計(jì)選型的基本原則

    6個(gè)MOS設(shè)計(jì)選型的基本原則
    發(fā)表于 03-18 07:04

    變量初始基本原則

    一、變量初始變量初始基本原則為:可綜合代碼中完成內(nèi)部變量的初始,Testbench中完成可綜合代碼所需的各類(lèi)接口信號(hào)的初始。初始
    發(fā)表于 01-19 07:07

    利用PADS實(shí)現(xiàn)3D可視化

    本文給出了利用PADS實(shí)現(xiàn)3D可視化的 具體過(guò)程,并對(duì)PADS和3D技術(shù)進(jìn)行了必要的說(shuō)明。
    發(fā)表于 10-10 16:03 ?477次下載
    利用PADS實(shí)現(xiàn)<b class='flag-5'>3D</b><b class='flag-5'>可視化</b>

    內(nèi)電層分割基本原則

    內(nèi)電層分割基本原則,內(nèi)電層分割基本原則,內(nèi)電層分割基本原則
    發(fā)表于 12-24 11:02 ?0次下載

    PCB設(shè)計(jì)基本原則

    PCB設(shè)計(jì)基本原則,好東西,喜歡的朋友可以下載來(lái)學(xué)習(xí)。
    發(fā)表于 01-18 15:17 ?0次下載

    管線可視化管理怎么實(shí)現(xiàn)呢?

    、調(diào)度、通信信息各個(gè)環(huán)節(jié)逐級(jí)可視。具備電站環(huán)境可視化、電力設(shè)備可視化、電力安防可視化標(biāo)準(zhǔn)功能,同時(shí)展示輸電網(wǎng)、變電站及其內(nèi)部的設(shè)備位置分布。 ThingJS-面向物聯(lián)網(wǎng)的
    發(fā)表于 03-11 14:36 ?1362次閱讀

    PLC選型的基本原則有哪些

    PLC選型的基本原則是:所選的PLC應(yīng)能夠滿足控制系統(tǒng)的功能需要。
    發(fā)表于 04-25 10:10 ?1.8w次閱讀

    PLC控制系統(tǒng)設(shè)計(jì)的基本原則

    PLC控制系統(tǒng)的設(shè)計(jì)四項(xiàng)基本原則如下
    發(fā)表于 05-18 08:57 ?3927次閱讀

    淺談工業(yè)3D可視化建模的特點(diǎn)

    智能3D設(shè)備是在工業(yè)搭建的3D建模和三維可視化基礎(chǔ)上之上構(gòu)建的一個(gè)機(jī)遇Web3D的虛擬工業(yè),其運(yùn)用物理網(wǎng)、云計(jì)算等現(xiàn)代信息技術(shù),商迪3D運(yùn)用
    發(fā)表于 04-09 10:23 ?2095次閱讀

    數(shù)據(jù)的可視化原則

    數(shù)據(jù)可視化原則(一)理解數(shù)據(jù)源 確保了解你工作的數(shù)據(jù)。這是理解數(shù)據(jù)至關(guān)重要的第一步。你需要對(duì)宏觀的全局有所理解:為什么收集這些數(shù)據(jù)?公司對(duì)于這些數(shù)據(jù)賦予什么樣的價(jià)值?用戶是誰(shuí)?如何能讓數(shù)據(jù)作用最大化
    發(fā)表于 09-06 15:12 ?1401次閱讀
    數(shù)據(jù)的<b class='flag-5'>可視化</b><b class='flag-5'>原則</b>

    智慧園區(qū)3D可視化大屏的主要優(yōu)勢(shì)

    智慧園區(qū)3D可視化大屏展示三維建模公司,是指智慧園區(qū)運(yùn)行中產(chǎn)品或獲取的數(shù)據(jù)。它是一個(gè)3D可視化和三維建模、信息處理利用有關(guān)的活動(dòng)組成。商迪3D
    發(fā)表于 09-24 15:03 ?1618次閱讀

    硬件原理圖設(shè)計(jì)基本原則

    硬件原理圖設(shè)計(jì)還應(yīng)該遵守一些基本原則,這些基本原則要貫徹到整個(gè)設(shè)計(jì)過(guò)程,雖然成功的參考設(shè)計(jì)中也體現(xiàn)了這些原則,但因?yàn)槲覀兛赡苁恰捌础背鰜?lái)的原理圖,所以我們還是要隨時(shí)根據(jù)這些原則來(lái)設(shè)計(jì)審
    的頭像 發(fā)表于 06-14 10:29 ?4694次閱讀

    群脈沖預(yù)防方案的基本原則?

    群脈沖預(yù)防方案的基本原則?|深圳比創(chuàng)達(dá)電子
    的頭像 發(fā)表于 01-15 14:03 ?697次閱讀
    群脈沖預(yù)防方案的<b class='flag-5'>基本原則</b>?
    2013现金棋牌游戏| 大发888真钱娱乐平台| 百家乐官网高命中投注| 庞博百家乐官网的玩法技巧和规则| 大发888娱乐游戏充值| 澳门百家乐官网游戏说明| 威尼斯人娱乐城安全吗| 网上百家乐官网合法吗| 百家乐必胜课| 百家乐官网游戏怎么刷钱| 至尊百家乐网| 太阳城团购| 奥斯卡百家乐官网的玩法技巧和规则| bet365怎么存款| 百家乐看炉子的方法| 百家乐官网游戏公司| 赌博网| 百家乐赌机玩法| 百家乐官网小路规则| 豪门国际| 百家乐自动算牌软件| 百家乐官网国际赌场娱乐网规则 | 网络棋牌游戏排行榜| 最新百家乐的玩法技巧和规则| 百家乐官网单机版的| 足球改单| 百家乐五铺的缆是什么意思| 千亿娱百家乐官网的玩法技巧和规则 | 百家乐官网庄闲和的倍数| 大发娱乐城| 百家乐娱乐官网| 百家乐官网真人娱乐场开户注册 | 百家乐机器二手| 百家乐官网免费试玩游戏| 大发888被查封| 百家乐必胜课| 百家乐不能视频| 百家乐官网电脑游戏机投注法实例 | 百家乐官网玩牌| 网上百家乐官网真实吗| 333娱乐|