2016-10-04 82 views
0

我试图遵循这个例子:http://bl.ocks.org/mbostock/34f08d5e11952a80609169b7917d4172D3 V4刷程度错误:<rect>属性X:预期长度,“南”

我认为问题是设置brushX的程度,在用于错误以下矩形覆盖和选择。

这里是我的代码,几乎从示例复制:

var brush = d3.brushX() 
       .extent([0,0],[brushChart.width,brushChart.height]) 
       .on("brush end",brushed); 
context = svg.append("g") 
        .attr("class", "context") 
        .attr("transform", "translate(" + brushMargin.left + "," + brushMargin.top + ")"); 
context.append("g") 
        .attr("class", "brush") 
        .call(brush) //this throws errors 

的错误是在该行“调用(刷):

errors

我已经尝试选择矩形并添加如this example中的值

+0

如何计算'brushChart.width'和高度?也许你可以提供一个jsfiddle或plunkr? – Oleg

+0

我将它设置在一个变量中:var brushChart = {width:500,height:500};我尽快提供一个jsfiddle。 – Dario

+0

当调用'parseInt()'或'parseFloa()t'时,'NaN'在JavaScript中返回,并且无法将字符串转换为数字。你的错误基本上是说,嘿我期待一个数字('长度'),但得到了'NaN',所以在计算'长度'时,你必须传递一个无效的字符串不能被分析成一个数字。 – Ryan

回答

2

刷子的初始化包含错误当调用brush.extent(),你需要指定一个阵列点,即数组的数组(嵌套数组):

#brush.extent([extent]) <>

If extent is specified, sets the brushable extent to the specified array of points [[x0, y0], [x1, y1]]

因此,您intialization变得

var brush = d3.brushX() 
       .extent([[0,0],[brushChart.width,brushChart.height]]) // [[x0,y0], [x1,y1]] 
       .on("brush end",brushed); 
+0

非常感谢你,令人难以置信的是我怎么错过了这两个例子和两个从文件..有时不做复制和粘贴没有帮助.. :) – Dario

相关问题