Javascript d3线性刻度-无效值
我是d3的新手(今天早上第一次开放)。我试图从csv数据文档中创建一个线性比例。 首先,我要计算比例:Javascript d3线性刻度-无效值,javascript,d3.js,scale,Javascript,D3.js,Scale,我是d3的新手(今天早上第一次开放)。我试图从csv数据文档中创建一个线性比例。 首先,我要计算比例: var x = d3.scale.linear() .range([0, width]); 然后我试着用它: .attr("width", function(d) { return x(Math.abs(Math.round(d.Betrag))); }) 但是,它返回一个错误“width=“NaN”的无效值 这一个有效(基本上没有线性缩放: .attr("width", func
var x = d3.scale.linear()
.range([0, width]);
然后我试着用它:
.attr("width", function(d) { return x(Math.abs(Math.round(d.Betrag))); })
但是,它返回一个错误“width=“NaN”的无效值
这一个有效(基本上没有线性缩放:
.attr("width", function(d) { return Math.abs(Math.round(d.Betrag)); })
有人能帮忙吗?谢谢,传递给range的width变量可能不是数字。否则,我想不出得到NaN作为scale函数返回的其他原因。传递给range的width变量可能不是数字。否则,我想不出得到NaN作为scale函数返回的其他原因.上面一条评论中@Mark给出的答案是正确的
var x = d3.scale.linear()
.domain(d3.extent(data, function(d){return d.Betrag;}))
.range([0, width]);
或者至少几乎是在做它应该做的事情……我现在注意到一些奇怪的事情,上面一条评论中@Mark给出的答案是正确的
var x = d3.scale.linear()
.domain(d3.extent(data, function(d){return d.Betrag;}))
.range([0, width]);
或者至少几乎做了它应该做的事情…我现在注意到一些奇怪的事情发生了你是否为你的
x
量表设置了.domain
域?d.Betrag的值是多少?请仔细阅读域。我如何使用它来根据数据改变数字?domain(data)d.Betrag持有浮点数,域
是用户空间坐标的限制。这和范围
将用户空间映射到像素空间。它通常设置为.domain([minOfData,maxOfData])
,或者在您的情况下设置为域(d3.extent(dataArray,function(d){return d.Betrag;}))
。尽管如此,[0,1]的默认域
,应该仍然适用于您。您需要在您的代码中添加一个可复制的示例,以便我进一步调查。您是否为您的x
量表设置了.domain
域?d.Betrag可以容纳哪些值?请阅读域。我如何根据数据使用不断变化的数字?域(数据)d.Betrag持有浮点数,域
是用户空间坐标的限制。这和范围
将用户空间映射到像素空间。它通常设置为.domain([minOfData,maxOfData])
,或者在您的情况下设置为域(d3.extent(dataArray,function(d){return d.Betrag;}))
。尽管如此,[0,1]
的默认域应该仍然适用于您。您需要在代码中添加一个可复制的示例,以便我进一步研究。