初探資料視覺化與 d3.js

25
初探資料視覺化與 D3.js Kuro Hsu

Upload: kuro-hsu

Post on 14-Jun-2015

1.678 views

Category:

Technology


14 download

DESCRIPTION

初探資料視覺化與 D3.js

TRANSCRIPT

Page 1: 初探資料視覺化與 D3.js

初探資料視覺化與 D3.jsKuro Hsu

Page 2: 初探資料視覺化與 D3.js

「先別管 D3 了,你聽過資訊視覺化嗎?」

有沒有介紹 D3.js 簡報的第⼀一⾴頁就叫⼈人別管 D3 的⼋八卦

Page 3: 初探資料視覺化與 D3.js

同樣是 Web 記錄分析,哪個易懂?

Page 4: 初探資料視覺化與 D3.js

同樣是 Web 記錄分析,哪個易懂?

Page 5: 初探資料視覺化與 D3.js

為什麼需要將資訊視覺化

• 視覺功能佔⼈人類⼤大腦⼀一半以上的訊息處理資源

• ⼤大量資料可在瞬間被理解,資訊傳遞更有效率

• 有助於觀察出其他呈現⽅方式不易察覺到的資料特性

• 資訊視覺化以後可以很容易看出本⾝身的瑕疵與錯誤

Page 6: 初探資料視覺化與 D3.js
Page 7: 初探資料視覺化與 D3.js
Page 8: 初探資料視覺化與 D3.js
Page 9: 初探資料視覺化與 D3.js
Page 10: 初探資料視覺化與 D3.js
Page 11: 初探資料視覺化與 D3.js
Page 12: 初探資料視覺化與 D3.js

Source: 好房網⾏行情 http://price.housefun.com.tw/

Page 13: 初探資料視覺化與 D3.js

– Randy Krum, Author of Cool Infographics.

「看到,就懂了。」

Page 14: 初探資料視覺化與 D3.js

資訊圖表類別

• 靜態圖表

• 可縮放圖表

• 可點選圖表

• 動畫

• 影⽚片

• 互動式 (網⾴頁 / application)

Page 15: 初探資料視覺化與 D3.js

資訊圖表類別

• 靜態圖表

• 可縮放圖表

• 可點選圖表

• 動畫

• 影⽚片

• 互動式 (網⾴頁 / application)

Page 16: 初探資料視覺化與 D3.js

http://d3js.org/

Page 17: 初探資料視覺化與 D3.js
Page 18: 初探資料視覺化與 D3.js
Page 19: 初探資料視覺化與 D3.js

* svg 繪圖需要 IE9+

Page 20: 初探資料視覺化與 D3.js

將資料綁定⾄至 document

DOM 選擇器d3.select("#Element");  d3.selectAll("Elements");

將資料加⼊入

.data([1,  2,  3,  4,  5])

Page 21: 初探資料視覺化與 D3.js

建⽴立 (Enter),更新 (Update) 以及離開 (Exit)

ENTER:    Data  elements  >  SVG  elements.  UPDATE:  Data  elements  =  SVG  elements.  EXIT:      Data  elements  <  SVG  elements.

.enter().append("circle")

.exit().remove()

Page 22: 初探資料視覺化與 D3.js

屬性 - attr

Color .attr("fill",  "#ff0000")  

.attr("x",  20)  

.attr("width",  100)  

.attr("stroke","#ff0000")  

.attr("class",  "red");

Position

Size

Stroke

Color

Page 23: 初探資料視覺化與 D3.js

var  circle  =  d3.select('svg').selectAll("circle")  

.data([1,  2,  3,  4,  5])  

.enter()  

.append("circle")  

.attr('cx',  function(d,i)  {  return  i  *  50  +  50;  })  

.attr('cy',  50)  

.attr('r',  function(d,i)  {  return  i  *  5  +  5;  })  

.attr('fill',  '#ff0000');

http://jsfiddle.net/5mfjevvL/

Page 24: 初探資料視覺化與 D3.js

var  block  =  d3.select('p').selectAll("div")  

.data(['H',  'E',  'L',  'L',  'O'])  

.enter()  

.append('div')  

.text(function(text){  return  text;  })  

.style("width",    

function(d,  i){  return  (i  *  20  +  20)  +  'px';  });  

http://jsfiddle.net/6vo7cq73/

Page 25: 初探資料視覺化與 D3.js

Need More ?

• D3 API Reference https://github.com/mbostock/d3/wiki/API-Reference

• Over 1000 D3.js Examples and Demos http://techslides.com/over-1000-d3-js-examples-and-demos/

• 五倍紅寶⽯石出礦坑- 第⼀一次玩 D3.js 就上⼿手 workshop( ⼯工商服務時間 XD )http://5xruby.tw/talks/d3js