javascript - 使用 D3.csv 在 DC.JS 中加载 CSV 文件

标签 javascript csv d3.js dc.js

我尝试使用 DC.js,但无法使用 d3.csv 加载外部 csv

这是 JSfiddle 的工作情况(没有外部 csv):http://jsfiddle.net/nicart/6k96mzta/1/

但我无法调用 csv spendData.csv (此处托管: https://raw.githubusercontent.com/nicart/DC-js-chart/master/spendData.csv ) 我尝试了一些代码,但我是 JS 新手,抱歉...我以为这没问题,但什么也没发生。

d3.csv('https://raw.githubusercontent.com/nicart/DC-js-chart/master/spendData.csv', function(error, spendData) {
      spendData.forEach(function(d) {
       d.Spent = d.Spent.match(/\d+/);
      });  

有可能制作这样的东西吗?

var spendData = d3.csv('https://raw.githubusercontent.com/nicart/DC-js-chart/master/spendData.csv')

谢谢。

最佳答案

感谢 Ami Tavory,我成功加载了外部 CSV。 我拉入

d3.csv("spendData.csv", function(error, spendData) {
    console.log(error);
    console.log(spendData);
// normalize/parse data
spendData.forEach(function(d) {

{ 之后,我添加了脚本的所有其余部分,因此它呈现如下:

d3.csv("spendData.csv", function(error, spendData) {
    console.log(error);
    console.log(spendData);
// normalize/parse data
spendData.forEach(function(d) {
    d.Spent = d.Spent.match(/\d+/);
});
// set crossfilter
var ndx = crossfilter(spendData),
    yearDim  = ndx.dimension(function(d) {return +d.Year;}),
    spendDim = ndx.dimension(function(d) {return Math.floor(d.Spent/10);}),
    nameDim  = ndx.dimension(function(d) {return d.Name;}),
    spendPerYear = yearDim.group().reduceSum(function(d) {return +d.Spent;}),
    spendPerName = nameDim.group().reduceSum(function(d) {return +d.Spent;}),
    spendHist    = spendDim.group().reduceCount();
yearRingChart
    .width(200).height(200)
    .dimension(yearDim)
    .group(spendPerYear)
    .innerRadius(50);
spendHistChart
    .width(300).height(200)
    .dimension(spendDim)
    .group(spendHist)
    .x(d3.scale.linear().domain([0,10]))
    .elasticY(true);
spendHistChart.xAxis().tickFormat(function(d) {return d*10}); // convert back to base unit
spendHistChart.yAxis().ticks(2);
spenderRowChart
    .width(350).height(200)
    .dimension(nameDim)
    .group(spendPerName)
    .elasticX(true);
dc.renderAll();            
});

我认为这对于开发人员来说是一件愚蠢的事情,但对我来说却很难理解。 我更新了 Jsfiddle,但由于它是外部 CSV,因此无法加载,但如果需要,您将获得完整的代码 ( http://jsfiddle.net/nicart/6k96mzta/3/ )。

关于javascript - 使用 D3.csv 在 DC.JS 中加载 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30545862/

相关文章:

python - 将 utf-8 格式的 Python 列表写入 CSV

javascript - d3.js 无法改变圆弧的外半径

javascript - 节点上的 D3 元数据

javascript - 如何使用新数据顺利更新 D3 v4 力图

javascript - 在新的多进程 Firefox 中从网页调用插件

javascript - jQuery 获取以像素为单位的高度

java - 如何立即返回 String Builder 对象作为 rdd ?或者将 String Builder 对象转换为 rdd?

mysql - Wordpress 插入数千条记录

javascript - 使用 Node.js 的文件路径问题

javascript - 如何从 ReactJS 中的另一个组件触发页面刷新?