【问题标题】:D3 v4 Pie Chart Update empty `d` attributesD3 v4 饼图更新空的 `d` 属性
【发布时间】:2016-09-16 07:42:39
【问题描述】:

我正在尝试使用最新的 D3 v4 重写经典的 Pie Chart Update, V 示例。不幸的是,没有计算路径的d 属性。

这是我的gistblock。到目前为止,我只改变了

  • d3.scale.category20() -> d3.scaleOrdinal(d3.schemeCategory20)

  • d3.layout.pie() -> d3.pie()

  • d3.svg.arc() -> d3.arc()

正如您在 DOM 中看到的那样,路径在那里,但它们没有任何 d 属性。

有什么想法吗?

【问题讨论】:

  • 看起来与path = path.data(data1, key); 的工作方式有关。在 v3 中,这最初会在一个数组中返回三个 path 项目,但在 v4 中你会得到完全不同的东西 (zi {_groups: Array[1], _parents: Array[1], _enter: Array[1], _exit: Array[1]})

标签: javascript d3.js svg


【解决方案1】:

我认为你有一些问题,尤其是没有在 enter 上设置 d 属性。

这是显示更改的要点https://bl.ocks.org/tezzutezzu/c2653d42ffb4ecc01ffe2d6c97b2ee5e

在我的代码中,计算变化时的相邻弧仍然存在错误,但这应该可以解决您最初的问题。

退出动画现在也可以工作了。我必须确保在插值之前复制对象。

编辑:语法

【讨论】:

  • 你看过原始示例吗?他们没有专门设置d 属性。
  • 是的,我相信这是由于 v4 中选择的工作方式发生了变化。请参阅此幻灯片了解差异:iros.github.io/d3-v4-whats-new/#20
  • 这是我的最新更新以及您的改进 - bl.ocks.org/zemirco/5fd7524237cfe69a4d78383dfd8949e7/…。如您所见,enter 过渡非常好。 exit 转换将圆圈移回 12 点钟方向,这是不对的。
  • 开始和结束角度都设置为最后一个弧的结束角度。可能是 findNeighborArc 函数有问题?
  • 当然。对于弧的出口过渡,我仍然需要知道哪个是它的邻居。出于这个原因,我在另一个对象中复制了它的邻居弧:“_previous”,因为对象“_current”在进入动画期间发生了变化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-12
  • 2017-10-08
  • 2018-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多