<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=D3.js</id>
	<title>D3.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=D3.js"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=D3.js&amp;action=history"/>
	<updated>2026-07-11T04:20:17Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=D3.js&amp;diff=2183318&amp;oldid=prev</id>
		<title>imported&gt;Taeas：​维护清理</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=D3.js&amp;diff=2183318&amp;oldid=prev"/>
		<updated>2024-01-17T08:00:52Z</updated>

		<summary type="html">&lt;p&gt;维护清理&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NoteTA|G1=IT|G2=FL}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| name                   = Data-Driven Documents (D3.js)&lt;br /&gt;
| title                  = &lt;br /&gt;
| logo                   = Logo_D3.svg&lt;br /&gt;
| logo caption           = &lt;br /&gt;
| logo_size              = 100px&lt;br /&gt;
| logo_alt               = &lt;br /&gt;
| screenshot             = &lt;br /&gt;
| caption                = &lt;br /&gt;
| screenshot_size        = &lt;br /&gt;
| screenshot_alt         = &lt;br /&gt;
| collapsible            = &lt;br /&gt;
| author                 = &lt;br /&gt;
| developer              = Mike Bostock、Jeffrey Heer、Vadim Ogievetsky與社群&lt;br /&gt;
| released               = {{Start date and age|2011|02|18}}&lt;br /&gt;
| programming language   = [[JavaScript]]&lt;br /&gt;
| operating system       = &lt;br /&gt;
| platform               = &lt;br /&gt;
| size                   = &lt;br /&gt;
| language               = &lt;br /&gt;
| language count         = &amp;lt;!-- DO NOT include this parameter unless you know what it does --&amp;gt;&lt;br /&gt;
| language footnote      = &lt;br /&gt;
| genre                  = [[数据可视化]]、[[JavaScript函式庫]]&lt;br /&gt;
| license                = [[BSD许可证]]&lt;br /&gt;
| website                = {{URL|https://d3js.org/}}&lt;br /&gt;
| standard               = &lt;br /&gt;
| AsOf                   = &lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;D3.js&amp;#039;&amp;#039;&amp;#039;（&amp;#039;&amp;#039;&amp;#039;D3&amp;#039;&amp;#039;&amp;#039;或&amp;#039;&amp;#039;&amp;#039;Data-Driven Documents&amp;#039;&amp;#039;&amp;#039;）是一个使用动态图形進行[[資料視覺化]]的[[JavaScript函式庫|JavaScript程式庫]]。與[[W3C]]标准相容，并且利用广泛实现的[[SVG]]、JavaScript和[[CSS]]标准，改良自早期的[[Protovis]]程式庫。与其他的程式庫相比，D3对视图结果有很大的可控性。D3是2011年面世的，同年的8月发布了2.0.0版。到2021年9月，D3已被更新到了7.0.3版&amp;lt;ref name=&amp;quot;d3 Releases&amp;quot;/&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
D3.js已被數十萬個網站使用&amp;lt;ref&amp;gt;{{Cite web | url = https://www.wappalyzer.com/technologies/d3 | title = Websites using D3 | publisher = Wappalyzer | accessdate = 2018-09-11 | archive-url = https://web.archive.org/web/20180911225154/https://www.wappalyzer.com/technologies/d3 | archive-date = 2018-09-11 | dead-url = no }}&amp;lt;/ref&amp;gt;，最常被運用在線上新聞網站呈現交互式圖形、呈現數據資料的圖表和呈現含有地理資訊的資料。另外SVG的輸出功能也使得D3.js能用於印刷出版物的繪製上。&lt;br /&gt;
&lt;br /&gt;
== 歷史 ==&lt;br /&gt;
在D3.js開發之前已經有出現過許多嘗試做資料視覺化的套件，例如{{link-en|Prefuse|Prefuse}}，Flare和Protovis程式庫，他們都可以視為D3.js的前身。然而Prefuse和Flare皆有缺點，皆不能只透過瀏覽器完成渲染，皆須要透過額外插件來完成。&lt;br /&gt;
&lt;br /&gt;
例如2005年釋出的Prefuse是一個資料視覺化程式庫，但是它需要透過網頁的[[Java]]插件才能於[[瀏覽器]]中呈現；而Flare是2007年釋出的另一個資料視覺化工具包，由於其是使用[[ActionScript]]程式語言開發，因此也需要額外插件，即[[Adobe_Flash_Player|Flash]]插件才能完成渲染。&lt;br /&gt;
&lt;br /&gt;
2009年，[[史丹佛大學]]的史丹佛視覺化團隊（Stanford Visualization Group）的傑佛瑞·赫爾、{{link-en|邁克·保斯托|Mike_Bostock}}和瓦迪姆·歐格菲茲齊利用開發Prefuse和Flare的經驗開始用Javscript開發了可從給定資料產生SVG圖形的Protovis程式庫。而Protovis程式庫在業界和學界皆有一定的知名度&amp;lt;ref&amp;gt;Academic example: {{citation|last1=Savva|first1=Manolis|last2=Kong|first2=Nicholas|last3=Chhajta|first3=Arti|last4=Li|first4=Feifei|last5=Agrawala|first5=Maneesh|last6=Heer|first6=Jeffrey|title=ReVision: Automated Classification, Analysisand Redesign of Chart Images|journal=ACM User Interface Software &amp;amp; Technology|year=2011|url=http://vis.stanford.edu/papers/revision|accessdate=2013-01-23|archive-url=https://web.archive.org/web/20180404094418/http://vis.stanford.edu/papers/revision|archive-date=2018-04-04|dead-url=yes}}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
2011年，史丹佛視覺化團隊停止開發Protovis，並開始開發新的資料視覺化程式庫，藉由之前開發Protovis的經驗，開發出了D3.js程式庫，在注重於Web標準的同時提供了更豐富的平台也有了更好的效能&amp;lt;ref name=&amp;quot;Bostock, Ogievetsky &amp;amp; Heer 2011&amp;quot;&amp;gt;{{citation |first1=Michael |last1=Bostock |first2=Vadim |last2=Ogievetsky |first3=Jeffrey |last3=Heer |title=D3: Data-Driven Documents |journal=IEEE Transactions on Visualization and Computer Graphics |date=October 2011 |publisher=[[IEEE Press]] |url=http://vis.stanford.edu/papers/d3 |volume=17 |issue=12 |pages=2301–2309 |doi=10.1109/TVCG.2011.185 |pmid=22034350 |access-date=2018-09-11 |archive-url=https://web.archive.org/web/20180905192513/http://vis.stanford.edu/papers/d3 |archive-date=2018-09-05 |dead-url=no }}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
== 技術原理 ==&lt;br /&gt;
D3.js透過預先建立好遷入於網頁中的[[JavaScript]]函數來選擇網頁元素、建立[[SVG]]元素、調整[[CSS]]來呈現資料，並且也可以設定動畫、動態改變物件狀態或加入工具提示來完成使用者互動功能。使用簡單的D3.js函數就能夠將大型的數據資料結構與SVG物件進行綁定，並且能生成[[格式化文本]]和各種圖表。其數據資料結構的格式可以是[[JSON]]、[[CSV]]（以[[逗號]]分隔的資料）或[[GeoJSON]]，也可以透過自己寫JavaScript函數來讀取其他或自定義格式的資料，例如[[Shapefile]]&amp;lt;ref name=&amp;quot;mbostock Shapefile&amp;quot;&amp;gt;{{Cite web | url = https://github.com/mbostock/shapefile | title = Streaming Shapefile Parser | accessdate = 2018-09-12 | archive-url = https://web.archive.org/web/20180815044340/https://github.com/mbostock/shapefile | archive-date = 2018-08-15 | dead-url = no }}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
=== 物件選擇 ===&lt;br /&gt;
D3.js所使用的物件選擇方式是透過使用CSS樣式選擇器來選擇一個或多個或一組文档对象模型物件，然後透過類似[[jQuery]]的方式控制所選的物件{{#tag:ref|{{harvnb|Bostock|Ogievetsky|Heer|2011}}&amp;lt;ref name=&amp;quot;Bostock, Ogievetsky &amp;amp; Heer 2011&amp;quot;/&amp;gt;, chap. 3}}。例如，選擇所有的{{tag|p}}網頁元素，將之改成方形類別、移動位置、並更換顏色為[[薰衣草色|淡紫色]]在D3.js中只要使用簡單的程式碼即可完成：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 d3.selectAll(&amp;quot;p&amp;quot;)                 // 選擇所有 &amp;lt;p&amp;gt; 網頁元素&lt;br /&gt;
   .style(&amp;quot;color&amp;quot;, &amp;quot;lavender&amp;quot;)     // 將顏色 &amp;quot;color&amp;quot; 樣式改成 &amp;quot;lavender&amp;quot; 淡紫色 (薰衣草色)&lt;br /&gt;
   .attr(&amp;quot;class&amp;quot;, &amp;quot;squares&amp;quot;)       // 將 &amp;quot;class&amp;quot; 改成 &amp;quot;squares&amp;quot;&lt;br /&gt;
   .attr(&amp;quot;x&amp;quot;, 50);                 // 將屬性值 &amp;quot;x&amp;quot; (水平位置) 改為 50px&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 動態改變物件狀態 ===&lt;br /&gt;
透過D3.js定義的物件成員函數&amp;lt;code&amp;gt;function transition (name)&amp;lt;/code&amp;gt;則可以在一定時間內平滑地改變物件的屬性或樣式的值，例如可以在500毫秒內逐漸將所有的{{tag|p}}網頁元素漸變為[[粉紅色]]：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 d3.selectAll(&amp;quot;p&amp;quot;)             // 選擇所有 &amp;lt;p&amp;gt; 網頁元素&lt;br /&gt;
   .transition(&amp;quot;trans_1&amp;quot;)      // 定義一個transition，命名為&amp;quot;trans_1&amp;quot;&lt;br /&gt;
     .delay(0)                 // 觸發後延遲0毫秒後開始動畫&lt;br /&gt;
     .duration(500)            // 漸變時間500毫秒&lt;br /&gt;
     .ease(d3.easeLinear)           // 使用線性漸變，並且....&lt;br /&gt;
   .style(&amp;quot;color&amp;quot;, &amp;quot;pink&amp;quot;);    // ...並且最終變為粉紅色&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 資料綁定 ===&lt;br /&gt;
[[File:D3 Example Data-binding.svg|300px|thumb|左邊的程式碼渲染的結果]]&lt;br /&gt;
D3.js有提供一進階應用例如設定與物件相關聯，或者將載入的資料直接繪成物件。在D3.js中，可以將資料與物件綁定，如此一來，當資料讀入之後根據資料產生對應具有相關的屬性（形狀、顏色或數值等）和行為（動畫或事件等）的SVG物件&amp;lt;ref&amp;gt;{{citation|date=2012-02-05|first=Mike|last=Bostock|title=Thinking with Joins|url=http://bost.ocks.org/mike/join/|access-date=2018-09-12|archive-url=https://web.archive.org/web/20140528005657/http://bost.ocks.org/mike/join/|archive-date=2014-05-28|dead-url=yes}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web |url=http://codepen.io/hugolpz/pen/wBorvq |title=A Pen by Lopez Hugo |website=Codepen.io |date= |accessdate=2016-08-01 |archive-url=https://web.archive.org/web/20160322021453/http://codepen.io/hugolpz/pen/wBorvq |archive-date=2016-03-22 |dead-url=yes }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web|author=|url=http://jsfiddle.net/9sggtr7a/|title=Edit fiddle|website=JSFiddle.net|date=|accessdate=2016-08-01|archive-url=https://web.archive.org/web/20161228073729/http://jsfiddle.net/9sggtr7a/|archive-date=2016-12-28|dead-url=no}}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// 資料&lt;br /&gt;
  var countriesData = [&lt;br /&gt;
     { name:&amp;quot;Ireland&amp;quot;,  income:53000, life: 78, pop:6378, color: &amp;quot;black&amp;quot;},&lt;br /&gt;
     { name:&amp;quot;Norway&amp;quot;,   income:73000, life: 87, pop:5084, color: &amp;quot;blue&amp;quot; },&lt;br /&gt;
     { name:&amp;quot;Tanzania&amp;quot;, income:27000, life: 50, pop:3407, color: &amp;quot;grey&amp;quot; }&lt;br /&gt;
  ];&lt;br /&gt;
// 建立svg網頁物件&lt;br /&gt;
  var svg = d3.select(&amp;quot;#hook&amp;quot;).append(&amp;quot;svg&amp;quot;)&lt;br /&gt;
        .attr(&amp;quot;width&amp;quot;, 120)&lt;br /&gt;
        .attr(&amp;quot;height&amp;quot;, 120)&lt;br /&gt;
        .style(&amp;quot;background-color&amp;quot;, &amp;quot;#D0D0D0&amp;quot;);&lt;br /&gt;
// 從資料建立關聯的svg網頁元素&lt;br /&gt;
    svg.selectAll(&amp;quot;circle&amp;quot;)                  // 建立還不存在的圓形樣板&lt;br /&gt;
      .data(countriesData)                   // 綁定資料&lt;br /&gt;
    .enter()                                 // 對每個資料......&lt;br /&gt;
      .append(&amp;quot;circle&amp;quot;)                      // 綁定資料列中的......資料到圓形&lt;br /&gt;
        .attr(&amp;quot;id&amp;quot;, function(d) { return d.name })            // 圓形的id為國家名&lt;br /&gt;
        .attr(&amp;quot;cx&amp;quot;, function(d) { return d.income / 1000  })  // 圓形的x坐標位置為收入&lt;br /&gt;
        .attr(&amp;quot;cy&amp;quot;, function(d) { return d.life })            // 圓形的y坐標位置為預期收入&lt;br /&gt;
        .attr(&amp;quot;r&amp;quot;,  function(d) { return d.pop / 1000 *2 })   // 圓形的半徑為國家人口數&lt;br /&gt;
        .attr(&amp;quot;fill&amp;quot;, function(d) { return d.color });        // 給表示不同國家的圓形不同顏色&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 資料讀取 ===&lt;br /&gt;
[[File:Emojione BW 1F5FE.svg|thumb|300px|左邊的程式碼渲染結果示意圖。直接將地理資訊透過D3.js轉為SVG而未進行設定時，將會顯示為未設定顏色（預設黑色）的地圖。透過上述其他方法亦可完成各類互動式圖表等相關應用。]]&lt;br /&gt;
D3.js除了有提供將載入的資料直接繪成物件的功能之外，也支援從檔案讀取資料並直接生成SVG圖像。此應用使得D3.js可以用簡單的程式碼完成與地理資訊相關的資料視覺化，而新版本的D3.js也改善了地理座標的轉換系統&amp;lt;ref&amp;gt;{{Cite web | url = https://www.ithome.com.tw/news/122539 | title = D3.js 5.0釋出，支援非同步樣版、導入專業資料配色法 | author = 李建興 | publisher = ithome.com | date = 2018-04-18 | accessdate = 2018-09-16 | archive-url = https://web.archive.org/web/20180916203823/https://www.ithome.com.tw/news/122539 | archive-date = 2018-09-16 | dead-url = no }}&amp;lt;/ref&amp;gt;，因此能準確地呈現包含地理資訊的圖表，例如「japan.json」中存了[[日本]]的[[GeoJSON]]地理資訊，則D3.js可以直接並載入並顯示日本地圖：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
d3.json(&amp;quot;japan.json&amp;quot;, function(topodata) {//載入JSON檔案&lt;br /&gt;
	var features = topojson.feature(//從GeoJSON中取出日本地形&lt;br /&gt;
		topodata, &lt;br /&gt;
		topodata.objects[&amp;quot;japan&amp;quot;]&lt;br /&gt;
	).features;&lt;br /&gt;
	var path = d3.geo.path().projection( &lt;br /&gt;
		d3.geo.mercator()&lt;br /&gt;
		.center([138,37])	//指定為日本經緯度位置&lt;br /&gt;
		.scale(6000) 		//放大至符合圖形大小&lt;br /&gt;
	);&lt;br /&gt;
	d3.select(&amp;quot;svg&amp;quot;)&lt;br /&gt;
		.selectAll(&amp;quot;path&amp;quot;)	// 建立還不存在的路徑物件樣板&lt;br /&gt;
		.data(features)		// 綁定日本地形資料&lt;br /&gt;
		.enter()		// 對所有的物件.....&lt;br /&gt;
		.append(&amp;quot;path&amp;quot;)		// 插入路徑物件&lt;br /&gt;
		.attr(&amp;quot;d&amp;quot;,path);	// 路徑物件的路徑依照日本經緯度位置填入地形資料&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
然而許多政府機關提供的文件皆為[[Shapefile]]，而由於D3.js也可以透過自己寫JavaScript函式或引用他第三方程式庫來讀取其他例如Shapefile的資料&amp;lt;ref name=&amp;quot;mbostock Shapefile&amp;quot;/&amp;gt;：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;		//需先引入Shapefile庫&lt;br /&gt;
shapefile.open(&amp;quot;japan.shp&amp;quot;)		//載入日本的Shapefile檔案&lt;br /&gt;
  .then(source =&amp;gt; source.read()&lt;br /&gt;
    .then(function log(result) {	//若Shapefile載入完畢&lt;br /&gt;
      if (result.done) return;&lt;br /&gt;
      console.log(result.value);	//印出載入到的地理資訊&lt;br /&gt;
      //下同&lt;br /&gt;
    }))&lt;br /&gt;
  .catch(error =&amp;gt; console.error(error.stack));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 根據資料產生節點 ===&lt;br /&gt;
當檔案順利讀入並與D3.js物件綁定之後，一般D3.js在使用上基本上會明確地用.enter()函數、暗示更新的函數以及.exit()函數來調用資料集中範圍內的資料，其中，d3.js沒有「update()」函數，需要自行時做對應功能來完成enter、update以及exit流程&amp;lt;ref&amp;gt;{{Cite web | title = SVG D3.js - Enter、Update 和 Exit | url = https://www.oxxostudio.tw/articles/201509/svg-d3-18-enter-update-exit.html | date =2015-09-17| accessdate = 2018-10-06 | publisher = oxxostudio.tw | archive-url = https://web.archive.org/web/20181006194728/https://www.oxxostudio.tw/articles/201509/svg-d3-18-enter-update-exit.html | archive-date = 2018-10-06 | dead-url = no }}&amp;lt;/ref&amp;gt;。接在.enter()函數後方的指令會作用在所有資料上並設定到前一段指令selectAll()選擇的網頁元素中所有未就緒的網頁元素。&amp;lt;ref&amp;gt;{{cite web |url=https://mbostock.github.io/d3/tutorial/circle.html |title=Three Little Circles |website=Mbostock.github.io |accessdate=2016-08-01 |archive-url=https://web.archive.org/web/20160719020359/http://mbostock.github.io/d3/tutorial/circle.html |archive-date=2016-07-19 |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 其他特色 ===&lt;br /&gt;
除了D3.js之外亦有許多可以抓取並處理資料的程式庫，例如jQuery，但D3.js與jQuery不同於，D3.js使用了數據驅動化來更有效地處理資料，例如，原先使用迴圈來處理資料，並且要預先把網頁元素產生出來，而D3.js則可以使用select或selectAll來批次完成資料處理，並會會視情況自動生成所需的網頁元素，而使得網頁有更多的彈性，也能支援能動態地即時地作出反應的互動性功能&amp;lt;ref&amp;gt;{{Cite paper |url=http://www.cc.ntu.edu.tw/chinese/epaper/0040/20170320_4004.html |title=初探D3.js ─ 資料視覺化的利器 |author=何宗諭 |publisher=臺灣大學 |journal=計算機及資訊網路中心電子報 |volume=第0040期 |date=2017-03-20 |ISSN=2077-8813 |access-date=2018-09-16 |archive-url=https://web.archive.org/web/20180202152123/http://www.cc.ntu.edu.tw/chinese/epaper/0040/20170320_4004.html |archive-date=2018-02-02 |dead-url=no }}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
== 相關程式庫 ==&lt;br /&gt;
=== Three.js ===&lt;br /&gt;
{{see also|Three.js}}&lt;br /&gt;
D3.js可以與Three.js結合，透過結合了D3.js的[[数据可视化|資料視覺化]]、圖表產生與Three.js的[[WebGL]]特性可以實現三維資料視覺化、圖表的呈現&amp;lt;ref&amp;gt;{{cite web |url=https://github.com/sghall/d3-threejs |title=D3Three.js |website=github.com |author=sghall |accessdate=2018-09-13 |archive-url=https://web.archive.org/web/20180611014506/https://github.com/sghall/d3-threejs |archive-date=2018-06-11 |dead-url=no }}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
== 參考文獻 ==&lt;br /&gt;
{{Reflist|30em}}&lt;br /&gt;
&lt;br /&gt;
== 延伸閱讀 ==&lt;br /&gt;
{{Refbegin|2}}&lt;br /&gt;
;D3.js入門相關文章&lt;br /&gt;
* {{citation |first1=Scott |last1=Murray |title=Interactive Data Visualization for the Web, An Introduction to Designing with D3 |edition=1st |date=March 2013 |publisher=[[O’Reilly Media]] |place=Sebastopol, California |isbn=978-1-4493-3973-9 |url=http://shop.oreilly.com/product/0636920026938.do |accessdate=2018-09-12 |archive-date=2018-09-15 |archive-url=https://web.archive.org/web/20180915190439/http://shop.oreilly.com/product/0636920026938.do |dead-url=no }}&lt;br /&gt;
* {{citation |first1=Simon |last1=Timms |title=Social Data Visualization with HTML5 and JavaScript |edition=1st |date=September 2013 |publisher=[[Packt Publishing]] |place=Birmingham |isbn=978-1-7821-6654-2 |url=http://www.packtpub.com/social-data-visualization-with-html5-and-javascript/book |accessdate=2018-09-12 |archive-date=2014-08-02 |archive-url=https://web.archive.org/web/20140802051803/http://www.packtpub.com/social-data-visualization-with-html5-and-javascript/book |dead-url=no }}&lt;br /&gt;
;D3.js進階相關文章&lt;br /&gt;
* {{citation |first1=Mike |last1=Dewar |title=Getting Started with D3 |series=Creating Data-Driven Documents |edition=1st |editor1-first=Julie |editor1-last=Steele |editor2-first=Meghan |editor2-last=Blanchette |date=June 2012 |publisher=[[O’Reilly Media]] |place=Sebastopol, California |isbn=978-1-4493-2879-5 |url=https://books.google.com/books?id=-1Zk213nXsYC }}&lt;br /&gt;
* {{citation |first1=Nick |last1=Qi Zhu |title=Data Visualization with D3.js Cookbook |edition=1st |date=October 2013 |publisher=[[Packt Publishing]] |place=Birmingham |isbn=978-1-7821-6216-2 |url=http://www.packtpub.com/data-visualization-with-d3-js-cookbook/book |accessdate=2018-09-12 |archive-date=2014-07-24 |archive-url=https://web.archive.org/web/20140724153842/https://www.packtpub.com/data-visualization-with-d3-js-cookbook/book |dead-url=no }}&lt;br /&gt;
;其他D3.js相關文章&lt;br /&gt;
* {{citation|last1=Newton|first1=Thomas|last2=Villarreal|first2=Oscar|title=Learning D3.js Mapping|date=2014|publisher=[[Packt Publishing]]|place=Birmingham|isbn=9781783985609|page=126|url=https://www.packtpub.com/web-development/learning-d3js-mapping|accessdate=2018-09-12|archive-date=2018-09-13|archive-url=https://web.archive.org/web/20180913002440/https://www.packtpub.com/web-development/learning-d3js-mapping|dead-url=no}}&lt;br /&gt;
* {{citation|url=https://www.packtpub.com/web-development/mastering-d3js|title=Mastering D3.js|first=Pablo|last=Navarro Castillo|year=2014|publisher=[[Packt Publishing]]|place=Birmingham|isbn=9781783286270|page=352|accessdate=2018-09-12|archive-date=2018-09-13|archive-url=https://web.archive.org/web/20180913002433/https://www.packtpub.com/web-development/mastering-d3js|dead-url=no}}&lt;br /&gt;
* {{citation|url=https://www.packtpub.com/web-development/data-visualization-d3js|title=Data Visualization with d3.js|first=Swizec|last=Teller|year=2013|publisher=[[Packt Publishing]]|place=Birmingham|isbn=9781782160007|page=194|accessdate=2018-09-12|archive-date=2018-09-13|archive-url=https://web.archive.org/web/20180913002447/https://www.packtpub.com/web-development/data-visualization-d3js|dead-url=no}}&lt;br /&gt;
* {{citation|url=http://shop.oreilly.com/product/9781939902023.do|title=Developing a D3.js Edge: Constructing Reusable D3 Components and Charts|first=Christophe|last=Viau|year=2013|publisher=[[Bleeding Edge Press]]|isbn=9781939902023|page=268|accessdate=2018-09-12|archive-date=2014-09-03|archive-url=https://web.archive.org/web/20140903081155/http://shop.oreilly.com/product/9781939902023.do|dead-url=yes}}&lt;br /&gt;
* {{citation|url=https://www.amazon.com/D3-js-Action-Elijah-Meeks/dp/1617292117/ref=sr_1_1?ie=UTF8&amp;amp;qid=1409163691&amp;amp;sr=8-1&amp;amp;keywords=elijah+meek|title=D3.js in Action|first=Elijah|last=Meeks|year=2014|publisher=[[Manning Publications]]|isbn=9781617292118|page=325|accessdate=2018-09-12|archive-date=2019-09-24|archive-url=https://web.archive.org/web/20190924221021/https://www.amazon.com/D3-js-Action-Elijah-Meeks/dp/1617292117/ref=sr_1_1?ie=UTF8&amp;amp;qid=1409163691&amp;amp;sr=8-1&amp;amp;keywords=elijah+meek|dead-url=no}}&lt;br /&gt;
* {{citation|url=https://leanpub.com/D3-Tips-and-Tricks|title=D3 Tips and Tricks|first=Malcolm|last=Maclean|year=2014|publisher=[[Leanpub]]|page=580|accessdate=2018-09-12|archive-date=2018-09-13|archive-url=https://web.archive.org/web/20180913002442/https://leanpub.com/D3-Tips-and-Tricks|dead-url=no}}&lt;br /&gt;
* {{citation|url=http://www.informit.com/store/visual-storytelling-with-d3-an-introduction-to-data-9780321933171|title=Visual Storytelling with D3: An Introduction to Data Visualization in JavaScript|first=Ritchie|last=King|year=2014|publisher=[[Addison-Wesley Data &amp;amp; Analytics Series]]|page=288|accessdate=2018-09-12|archive-date=2018-09-13|archive-url=https://web.archive.org/web/20180913002302/http://www.informit.com/store/visual-storytelling-with-d3-an-introduction-to-data-9780321933171|dead-url=no}}&lt;br /&gt;
;影片資源&lt;br /&gt;
* {{citation |first1=Nikhil |last1=Gopal |title=D3 and CoffeeScript: A Python Programmer&amp;#039;s Introduction to Web Visualizations |date=October 2014 |publisher=[[O’Reilly Media]] |place=Sebastopol, California |url=http://shop.oreilly.com/product/110000663.do |accessdate=2018-09-12 |archive-date=2018-09-13 |archive-url=https://web.archive.org/web/20180913041523/http://shop.oreilly.com/product/110000663.do |dead-url=no }}&lt;br /&gt;
* {{citation |first1=Ritchie |last1=King |title=D3 Visualization LiveLessons: An Introduction to Data Visualization in JavaScript |date=December 2014 |publisher=[[Addison-Wesley Professional]] |url=http://www.informit.com/store/d3-visualization-livelessons-an-introduction-to-data-9780134087139 |accessdate=2018-09-12 |archive-date=2018-09-13 |archive-url=https://web.archive.org/web/20180913002431/http://www.informit.com/store/d3-visualization-livelessons-an-introduction-to-data-9780134087139 |dead-url=no }}&lt;br /&gt;
{{Refend|2}}&lt;br /&gt;
&lt;br /&gt;
== 外部連結 ==&lt;br /&gt;
{{Commons category|D3.js}}&lt;br /&gt;
{{Portal|自由软件|软件|信息技术}}&lt;br /&gt;
* {{official website|d3js.org}}&lt;br /&gt;
* [https://github.com/d3/d3/wiki/Gallery/ D3.js Gallery]{{Wayback|url=https://github.com/d3/d3/wiki/Gallery/ |date=20180913033844 }}&lt;br /&gt;
* [http://bl.ocksplorer.org Blocksplorer]{{Wayback|url=http://bl.ocksplorer.org/ |date=20150119223658 }}, search for blocks by methods used&lt;br /&gt;
&lt;br /&gt;
{{可视化}}&lt;br /&gt;
&lt;br /&gt;
[[Category:JavaScript函式庫]]&lt;br /&gt;
[[Category:用JavaScript編程的自由軟體]]&lt;br /&gt;
[[Category:自由數據可視化軟件]]&lt;br /&gt;
[[Category:使用BSD许可证的软件]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Taeas</name></author>
	</entry>
</feed>