Charts 如何从d3.js模板';可重复使用的图表';

Charts 如何从d3.js模板';可重复使用的图表';,charts,d3.js,Charts,D3.js,我正在尝试使用@mbostock所描述的,当使用一行()时,一切都很好。 但是,当我尝试使用点()时,图表中只添加了一个元素,而且格式不正确(错误的cx和cy) 我尝试的代码介于之间。 我试图为每个数据在svg中添加一个圆圈,但没有添加。第一个问题是d3.svg.line生成器将数组作为输入,但圆圈元素只需要该数组的一个值。因此,首先,您必须正确地进行数据绑定 下一步,你需要有正确的规模。cx和cy可以使用X和Y比例存取器功能。半径还需要一个刻度,因为xSpeed包含负数,半径不能为负数。下面是

我正在尝试使用@mbostock所描述的,当使用一行(
)时,一切都很好。 但是,当我尝试使用点(
)时,图表中只添加了一个元素,而且格式不正确(错误的
cx
cy

我尝试的代码介于之间。
我试图为每个数据在svg中添加一个圆圈,但没有添加。

第一个问题是d3.svg.line生成器将数组作为输入,但圆圈元素只需要该数组的一个值。因此,首先,您必须正确地进行数据绑定

下一步,你需要有正确的规模。cx和cy可以使用X和Y比例存取器功能。半径还需要一个刻度,因为xSpeed包含负数,半径不能为负数。下面是固定版本:


为什么这与另一个用户提出的问题完全相同?事实上,这是我的队友提出的重复问题,请在我们回答时关闭/删除。通过这一点,我绘制了一张历史风向(方向/强度)图:
var speedScale = d3.scale.linear().domain(d3.extent(data.map(function(d, i){return d.xSpeed;}))).range([2, 10]);
            gEnter.selectAll('circle.dot')
                .data(function(d, i){return d})
                .enter().append("circle")
                .attr("class", "dot")
                .attr("cx", X)
                .attr("cy", Y)
                .attr("r", function(d, i){return speedScale(d.xSpeed)});