当 X 轴更改时,D3 圆圈没有响应

  • 本文关键字:响应 D3 javascript d3.js
  • 更新时间 :
  • 英文 :


我有一个图表,显示代表时间轴上不同事件的圆圈。我添加了按钮,以便用户可以选择从今天起 3、6、12 和 18 个月的时间线视图。12 个月和 18 个月的按钮工作正常,但 3 个月和 6 个月的按钮都失败。

这是块构建器中的工作代码。

当我控制台时.log开始和结束日期看起来不错。所有时间线按钮(3、6、12 和 18(都返回正确的日期和时间。

我完全困惑为什么有些按钮有效而有些按钮不起作用。

有什么想法为什么我可以在时间线上指定一些日子,而不能指定其他日子?

这些"下一个[x]-个月"按钮不起作用的原因在于您的这段代码(当前块构建器链接中的第 551 行(:

else{
circles.data(d3.voronoi()
.extent([[-margin.left, -margin.top], [width + margin.right, height + margin.top]])
.x(function(d) { return d.x; })
.y(function(d) { return d.y; })
.polygons(MyData)) 

如果您在此之后检查数据,您会发现很多数据点已被替换为undefineds。我不确定造成这种情况的根本原因是什么,因为我没有d3-voronoi的经验,无论如何,它已被弃用并替换为 d3-delaunay。

如果您执行以下操作:

let vdata = d3.voronoi()
.extent([[-margin.left, -margin.top], [width + margin.right, height + margin.top]])
.x(function(d) { return d.x; })
.y(function(d) { return d.y; })
.polygons(MyData);
let fdata =[];
vdata.forEach(d => {if(d) fdata.push(d);});
circles.data(fdata);

您将不再看到错误,按钮将起作用,尽管我不确定生成的可视化是否真的是您想要的。但问题是关于那些抛出错误的按钮,我相信这就是原因。希望这有帮助。

最新更新