2013-04-26 57 views
3

上周我测试了D3js后,我在nvd3上是新的。我想从.csv文件加载数据与nvd3,我在D3上做,但我无法与nvd3做...有人知道如何做到这一点? 随着D3我写的下一行,我从我的wather.csv获取数据:是否可以将csv数据加载到nvd3库?

d3.csv("weather.csv", function(error, data) { 
    data.forEach(function(d) { 
     d.date = parseDate(d.Hour); 
     d.T = +d.T; 
    }) 
}); 

考虑像我weather.csv文件:

"Hour";"T"; 
"25.04.2013 12:00";"18.7"; 
"25.04.2013 11:00";"18.5"; 
"25.04.2013 10:00";"18.4"; 
"25.04.2013 09:00";"18.9"; 
... 

在Nvd3例子,我发现只有代码中的变量,不加载任何.csv或.json文件。我想从一个文件加载数据并显示一个简单的条形图。

修订

在这里,我说我实现的代码,它不工作。我使用D3中的函数.csv,但导航器说数据不存在,我不知道为什么。

var parseDate = d3.time.format("%d.%m.%Y %H:%M").parse; 
d3.csv("weather.csv", function(error, data) { 
    data.forEach(function(d) { 
     d.date = parseDate(d.Hour); 
     d.T = +d.T; 
    }) 

    nv.addGraph(function() { 
     //console.log(data); 
     var chart = nv.models.discreteBarChart() 
      .x(function(d) { return d.date }) 
      .y(function(d) { return d.T }) 
      .staggerLabels(true) 
      //.staggerLabels(historicalBarChart[0].values.length > 8) 
      .tooltips(false) 
      .showValues(true); 

     d3.select('#chart1 svg') 
      //.datum(historicalBarChart) 
      .datum(data) 
      .transition().duration(500) 
      .call(chart); 

     nv.utils.windowResize(chart.update); 
     return chart; 
    }); 
}); 

谢谢。

回答

2

最后我得到了我的代码错误。来自NVD3.js的示例从D3.js加载v2文件。当我们使用2.X版本的D3我们已经与下一个代码加载外部数据:

d3.csv("weather.csv", function(data) { 
    data.forEach(function(d) { 
     d.date = parseDate(d.Hour); 
     d.T = +d.T; 
    }) 
}); 

V3更新后,这件事情发生变化,出现错误的说法,并insinde该.csv功能我们可以控制错误情况。

d3.csv("weather.csv", function(error, data) { 
    data.forEach(function(d) { 
     d.date = parseDate(d.Hour); 
     d.T = +d.T; 
    }); 
}); 

Here you can see this changes由Mike博斯托克,D3.js

0

您可以使用所有的方法加载D3中的数据,也可以使用nvd3。 This example使用d3.json函数来加载数据。您可以简单地用d3.csv替换它并添加数据处理。

+1

的创建者解释,但不CSV数据被转换成一个JSON阵列与nvd3使用? ,我对此有点困惑。 – shabeer90 2013-04-26 09:38:56

+0

我已经使用完整的代码更新了代码。也许@ shabeer90是对的,我需要将csv转换为json吗? – newpatriks 2013-04-26 09:42:43

+0

如果'data'不存在,则表明加载文件时出现问题。不,不需要额外的转换。一旦数据被加载(从CSV或JSON或其他),它可以作为Javascript对象。 – 2013-04-26 09:52:19

0

我已经研究了几个nvd3图表在工作。

基本上我将我的CSV转换成JSON结构,以便它可以传递到nvd3库所需的结构中。

我可能是错的,但您可以随时调整代码以满足您的需要。

+0

我已经写了我的问题的答案,我希望它可以帮助你,谢谢! :) – newpatriks 2013-04-26 10:37:59

相关问题