iT邦幫忙

DAY 12
4

SVG 與 D3.js系列 第 12

D3.js 利用Excel建立資料(CSV)

完整範例:http://wcc723.github.io/d3js/2014/10/11/Ironman-30-days-12/

做了那麼多,資料都是隨機產生的,雖然每次打開都不一樣,但是還是假的資料,這次來試試看讀取Excel的資料吧。

CSV

Excel可以轉出一種稱為csv(Comma-Separated Values)格式的檔案,檔案的資料內容都是用逗點隔開的,大概像下面這樣:

name,value
Tyler,234
Boy,124
Joe,357

第一行的name,value可以當作是標題或者是變數名稱,第二行開始的Tyler,234....都是值,d3.js可以將csv轉換成Json檔案格式,可以直接用來作為繪圖所需要的資料。

Excel

今天又是假日,所以code就短一點,來介紹Excel怎麼做CSV,打開Excel以後,建立如下的資料。

接下來選擇另存新檔,附檔名選擇.CSV。

如果用文字編輯器打開,預期會出現下面的結果,而這就是D3所需要的csv格式。

如果不想自己做,也可以下載我做好的範例

D3.js

接下了Excel的工作就完成了,來試試看用D3js讀取看看吧,其實方式也相當簡單,只要用d3.csv()就可以讀取並且轉換成json資料格式,只要給d3.js路徑即可。

dataPath = '/demoFile/d3data/'; //檔案路徑
dataFile = 'd3demoData141011.csv'; //檔名
dataUrl = dataPath + dataFile; //路徑加檔名
//定義SVG的大小
d3.csv(dataUrl, function(data){
	console.table(data); //用table的方式在console呈現json
	d3.select('.demo').text(JSON.stringify(data)) //把json寫到.demo上
});

如果對於json還認為不好閱讀的人,可以使用console.table()來呈現json,這樣會好閱讀很多。

而這個範例所轉換出來的json格式就像下面這樣。

[{"name":"Tyler","value":"234"},{"name":"Boy","value":"124"},{"name":"Joe","value":"357"},{"name":"Alan","value":"946"},{"name":"Cristin","value":"689"},{"name":"Joshua","value":"436"},{"name":"Kathy","value":"654"},{"name":"Lucy","value":"245"},{"name":"Mickey","value":"358"},{"name":"Jeffery","value":"421"},{"name":"Alexander","value":"526"},{"name":"Hilton","value":"313"},{"name":"Sammy","value":"134"},{"name":"Shawn","value":"367"}]

那麼有了資料,我們明天再跟先前所練習的範例做結合吧。


上一篇
D3.js 國慶日在家裡畫長條圖
下一篇
D3.js 讀取CSV資料並繪製成長條圖
系列文
SVG 與 D3.js30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言