我试图在图表上绘制轴但是当我使用以下行附加带有g的svg时,我收到错误TypeError: d.join is not a function
:
svg.append("g")
.attr("transform", "translate(0," + height / 2 + ")")
.call(xAxis);
svg.append("g")
.attr("transform", "translate(" + width / 2 + ",0)")
.call(yAxis);
但是,当我删除这些行时,错误消失。关于如何解决这个问题的任何想法?这是DEMO。
谢谢!
答案 0 :(得分:3)
此行导致问题:
var path = svg.selectAll("path");
这是选择svg的所有path
元素。添加轴时,它们还包含正在选择的路径元素,但不是 voronoi的一部分。解决方案是使这个选择器更具体:
var path = svg.selectAll(".step"); //<-- select by class "step"
function redraw() {
var d = [];
for (var i = 0; i < k; i++) {
d.push([X(x_means[i]), Y(y_means[i])]);
}
var vd = voronoi(d);
var v = path
.data(vd, polygon);
v.exit().remove();
v.enter()
.append("path")
.attr('class','step'); //<-- when you add a voroni path give it that class
更新了示例here。