从csv文件创建变量

时间:2013-09-01 23:58:45

标签: javascript csv d3.js

我已经解决了发生了什么但没有解决方法,或者即使它是最好的方法(不太可能)。

我已经制作了一个从csv文件中读取的图表,这部分工作得很好。但是因为我不希望在完成后触摸代码。这就是为什么我采用从csv文件中获取数据的最佳/最简单方法,并将其转换为变量。

所有代码都在here上。我和Scott Cameron正在讨论这件事,发现了我遇到的问题。

我把这段代码认为可行。 (d.avrNum是我想变成一个变量。)

dataEnter.append("rect")
.attr("fill",function(d,i){return color(i);})
.attr("y", function(d, i){return i * horizontalBarDistance - barYOffset;})
.attr("x", barXOffset)
.attr("height", function(d){return barWidth;}) 
.attr("width", function(d){return d.data * (graphWidth / d.varNum)});

最后一行是我需要变量号。我研究出来,就像d.data一样,d.varNum会读下一个数字。但是d.varNum中只有一个数字,所以这不起作用。

因为我想继续使用1号,我需要从d.varNum中创建一个变量。如果有人能帮助我,我会非常感激。

Before asking question about the code please have a look at it.


更新


我做了一些环顾四周,发现this. .. 我试图让它适合我,但我真的不明白这段代码。

这就是我得到的

var rawTarget = ["d.Target"];
var targetNum = rawTarget.slice(2,3,4,5);

它表现得像根本看不到阵列。

正如我所说的,我想要的只是第一个数字(因为只有1个数字)用作变量。如果我可以使它工作,那将取代my graph中的maxData。

1 个答案:

答案 0 :(得分:0)

我在理解你所问的问题上有点麻烦;如果你想让varNum引用你正在绘制的矩形数,这个代码将起作用:

var varNum = data.length;
...
  .attr("width", function(d){return d.data * (graphWidth / varNum)});