Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript d3堆栈似乎正在工作,但当值被推送到svg rect时,它会得到NaN_Javascript_D3.js - Fatal编程技术网

Javascript d3堆栈似乎正在工作,但当值被推送到svg rect时,它会得到NaN

Javascript d3堆栈似乎正在工作,但当值被推送到svg rect时,它会得到NaN,javascript,d3.js,Javascript,D3.js,我最初创建了这个图表,这基本上就是我试图重新创建的图表,只是我希望根据阈值数组中的数据动态填充条形图的高度: 因此,如果值为1,20,40,它将相应地缩放彩色矩形 我正在尝试使用堆栈函数: var layers = d3.layout.stack()(dataChartData.summaryData.threshold.map(function () { return dataChartData.summaryData.threshold.map(function (d) {

我最初创建了这个图表,这基本上就是我试图重新创建的图表,只是我希望根据阈值数组中的数据动态填充条形图的高度:

因此,如果值为1,20,40,它将相应地缩放彩色矩形

我正在尝试使用堆栈函数:

var layers = d3.layout.stack()(dataChartData.summaryData.threshold.map(function () {
        return dataChartData.summaryData.threshold.map(function (d) {
            return { x: 0, y: +d, y0: 0 };
            });
    }));
这将控制台记录数据(即使我的y0值当前不正确),数据格式正确。但是,当我尝试获取这些值并将它们拉到矩形值时,我得到一个错误:error:Invalid value for attribute y=“NaN”。我用“层”来称呼它:


感谢您的帮助

是因为您将属性设置为Funciton对象而不是Number对象吗? 尝试添加带变量的括号以传递到函数定义,如下所示:


-.attr(“x”,函数(d){return xScale(d.x);})//当前
+.attr(“x”,函数(d){return xScale(d.x);}(d))//建议

图层数组的格式与您想象的不同。现在它是一个由3个数组组成的数组,其中的值是通过d3.layout.stack函数调用创建的。使用上述内容和当前格式,您可以通过以下方式访问值:

.attr("y", function (d, i) { return yScale(d[i].y); })

您是否使用jQuery访问dom属性?
.attr("y", function (d, i) { return yScale(d[i].y); })