我已经解决了发生了什么但没有解决方法,或者即使它是最好的方法(不太可能)。
我已经制作了一个从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。
答案 0 :(得分:0)
我在理解你所问的问题上有点麻烦;如果你想让varNum引用你正在绘制的矩形数,这个代码将起作用:
var varNum = data.length;
...
.attr("width", function(d){return d.data * (graphWidth / varNum)});