我是javascript的初学者
我有以下数据:
data[i] = '{"Name":"'+car[i]+'","Price":"'+retail[i]+'"}';
我想将零售价值[i]用作svg的y位置(' .dot')
svg.selectAll(".dot")
.data(data)
.enter().append("circle")
.attr("class", "dot")
.attr("r", 3.5)
.attr("cx", function(d) { return 10; })
.attr("cy", function(d) { return y(d.Price); })
.style("fill", function(d) { return 'Red'; });
但我正在
Error: Invalid value for <circle> attribute cy="NaN"
我也试过.attr(&#34; cy&#34;,function(d){return y(Number(d.Price));}) 我在做什么错误?
答案 0 :(得分:1)
data [i]变量是一个字符串,只要它在您的问题中显示。要解决这个问题,要么将该变量作为对象(更好的解决方案),要么使用JSON.parse来解析该字符串并将其转换为对象
我为数据[i]构建对象
data[i] = {"Name":car[i],"Price":retail[i]};
答案 1 :(得分:0)
可能是数据是字符串格式,你试过吗?
.attr("cy", function(d) { return y(Number(JSON.parse(d).Price)); })
答案 2 :(得分:0)
它显示,您正在传递NaN值(非数字)。所以你必须将值作为整数值传递..
使用parseInt()转换为整数..