我有以下结构的 JSON 列表:
[
{'uid': 4, 'x': -1.2354657, 'y': -0.992893}
{'uid': 26, 'x': 0.2783682, 'y': -0.1931}
...
{'uid': 26, 'x': -0.278356, 'y': 0.082983}
]
我正在尝试将svg:circle
元素附加到此列表中的和值svg
指定的点。AJAX 请求正常工作,但我不断收到.x
y
Error: Invalid value for <circle> attribute cy="[object Object]"
相关的javascript代码:
var svg = d3.select('#d3')
.append('svg')
.append('g')
.attr('class', 'main')
...
var x = d3.scale.linear()
.domain(d3.extent(data, function (d) {return d.x;}))
.range([0, width]);
var y = d3.scale.linear()
.domain(d3.extent(data, function (d) {return d.y;}))
.range([height, 0]);
...
svg.selectAll('.bloom')
.data(data)
.enter()
.append('g')
.attr('class', 'bloom')
.append('circle')
.attr('class', 'bloom-circle')
.attr('cx', function (d) {return x(d.x);})
.attr('cy', function (d) {return y(d.y);})
.attr('r', 10)
.style('fill', 'purple')
.style('stroke', 'white')
.style('stroke-width', '5px');
我真的不知道发生了什么,因为d3.scale.linear
应该总是在它的range
. 有谁知道为什么会这样?