0

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

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

所有的代码都在这里。我正在与 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 个数字,所以这不起作用。

因为我想继续使用 1 数字,所以我需要从 d.varNum 中创建一个变量。如果有人可以帮助我,我将不胜感激。

在询问有关代码的问题之前,请查看它。


更新


我做了更多的环顾四周,发现了这一点。..我试图让它为我工作,但我并不真正理解这段代码。

这就是我得到的

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

它的行为就像根本看不到数组一样。

正如我所说,我想要的只是第一个数字(因为只有一个数字)用作变量。如果我能让它工作,它将在我的图表中取代 maxData 。

4

1 回答 1

0

我很难理解你在问什么;如果您希望 varNum 引用您正在绘制的矩形的数量,则此代码将起作用:

var varNum = data.length;
...
  .attr("width", function(d){return d.data * (graphWidth / varNum)});
于 2013-09-02T05:08:27.187 回答