D3是一個數(shù)據(jù)可視化的工具庫,可以幫助我們將數(shù)據(jù)轉(zhuǎn)換成圖形,并將其展示出來。在D3中讀取Json文件非常簡單,只需要用D3中的d3.json()方法即可。
d3.json("data.json", function(data) { //這里寫數(shù)據(jù)處理和繪圖的代碼 });
以上的代碼中,d3.json()方法中第一個參數(shù)是Json文件的路徑,第二個參數(shù)是一個Callback函數(shù),當Json文件加載完之后,數(shù)據(jù)將會傳遞給Callback函數(shù)處理。Callback函數(shù)的參數(shù)"data"即為從Json文件中讀取到的數(shù)據(jù),我們可以在這個函數(shù)中將數(shù)據(jù)進行轉(zhuǎn)換和處理,然后通過D3中的各種繪圖函數(shù)將數(shù)據(jù)繪制成想要的圖形。
以下是一個實際應用的例子:
d3.json("data.json", function(data) { var width = 500, height = 300; var svg = d3.select("body") .append("svg") .attr("width", width) .attr("height", height); var rects = svg.selectAll("rect") .data(data) .enter() .append("rect"); rects.attr("x", function(d, i){return i * 40;}) .attr("y", function(d){return height - d;}) .attr("width", 30) .attr("height", function(d){return d;}); });
以上的代碼是一個繪制簡單柱狀圖的例子,首先我們讀取了一個名為“data.json”的Json文件,然后創(chuàng)建了一個SVG畫布,之后用D3中的selectAll()和data()方法來選擇并處理讀取到的數(shù)據(jù),最后通過append()方法將SVG元素加入畫布中。在這個例子中,我們將Json文件中的每一個數(shù)據(jù)都繪制成了一個矩形,其中x和y的位置是根據(jù)數(shù)據(jù)索引和數(shù)值值計算得出的,而矩形的高和寬則是根據(jù)數(shù)據(jù)值直接設置的。
下一篇vue 預渲染弊端