我已經廣泛查看了代碼示例,並且已經能夠調用crossfilter的.top(Infinity)
函數在過濾後輸出更新的數據記錄。我甚至可以撥打d3.csv.format
與.top(n)
以獲得可以下載的字符串CSV輸出。但我有幾個問題。dc.js d3 + crossfilter.top將過濾的數據導出爲CSV
我打電話頂部和csv.format功能在我的圖表繪製方法如下解釋:
d3.csv("/data/acuityData.csv", function (data) { // format our data var dtgFormat = d3.time.format("%Y-%m"); var dtgFormat2 = d3.time.format("%a %e %b %H:%M"); data.forEach(function(d) { d.dtg1=d.dayOfWeek; d.dtg= dtgFormat.parse(d.year+"-"+d.month); d.dtg2=d.year; d.mag= d.acuityInitial; d.depth= d.waitTime; d.dispositions= d.disposition; }); // Run the data through crossfilter and load our 'facts' var facts = crossfilter(data); var all = facts.groupAll(); // for wait time var depthValue = facts.dimension(function (d) { return d.depth; }); var depthValueGroup = depthValue.group(); depthChart.width(930) .height(150) .margins({top: 10, right: 10, bottom: 20, left: 40}) .dimension(depthValue) .group(depthValueGroup) .transitionDuration(500) .centerBar(true) .gap(1) .x(d3.scale.linear().domain([0, 500])) .elasticY(false) .xAxis().tickFormat(function(v) { console.log(d3.csv.format(depthValue.top(500))); return v;}); dc.renderAll(); });
我已刪除了一些圖表,以節省空間。我最重要的問題是關於調用此導出數據調用。現在我只是console.log
-輸出,它在我的瀏覽器控制檯中顯示爲一個「好的」CSV數據集。我無法弄清楚如何解決的問題是如何添加能夠調用此方法的Export All
鏈接,因爲此代碼區域在d3.csv
函數閉包的範圍之外無法訪問。 我該如何解決這個問題?
- 返回在CSV輸出已複製的行,因爲它是包括在原始的CSV文件,以及用於生成的列,其在可見的句柄中的列的數據
data.forEach(function(d){}
塊。在CSV輸出中的標題顯示如下:
acuityInitial,dayOfWeek,disposition,hour,month,waitTime,year,dtg1,dtg,dtg2,mag,depth,dispositions
不知道如何解決這個問題。任何幫助表示讚賞。