d3.js-圆弧绘制的平滑过渡饼图

心智分析

我在d3中放了一个饼图,并在绘制每个圆弧时使用了过渡和延迟。

代码段:

var path = g.selectAll("path")
    .data(pie(dataset.apples))
    .enter().append("path")
    .attr("fill", function(d, i) { return color(i); })
    .transition()
    .delay(function(d, i) {
        return i * 100;
    })
    .duration(500)
    .attr("d", arc);

工作提琴

我想实现一个更平滑的过渡,以使每条弧线在绘制到绘制时都从一个弧形到另一个弧形依次增长,而不是像现在这样立即显示。

有人可以给我些帮助吗?谢谢

西里尔·谢里安(Cyril Cherian)

我可以建议2种制作动画的方法:

动画1是在延迟的帮助下完成的,此处会增长一个切片,然后再扩展下一个切片。

//the tween will do the animation as end angle increase over time
var path = g.selectAll("path")
    .data(pie(dataset.apples))
    .enter().append("path")
    .attr("fill", function(d, i) { return color(i); })
    .transition()
    .delay(function(d, i) {
      return i * 800;
    })
        .attrTween('d', function(d) {
   var i = d3.interpolate(d.startAngle+0.1, d.endAngle);
   return function(t) {
       d.endAngle = i(t);
     return arc(d);
   }
});

这里的工作示例

动画2每个切片的增长时间与持续时间相同

var path = g.selectAll("path")
    .data(pie(dataset.apples))
    .enter().append("path")
    .attr("fill", function(d, i) { return color(i); })
    .transition()
    .duration(function(d, i) {
      return i * 800;
    })
        .attrTween('d', function(d) {
   var i = d3.interpolate(d.startAngle+0.1, d.endAngle);
   return function(t) {
       d.endAngle = i(t);
     return arc(d);
   }
});

这里的工作代码

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在d3中更新值时如何在饼图中进行平滑过渡?

来自分类Dev

D3饼图圆弧在过渡到180°时不可见

来自分类Dev

d3饼图排序过渡

来自分类Dev

数据更新的 D3 平滑过渡

来自分类Dev

D3js-2条路径之间的平滑过渡

来自分类Dev

D3.js 中标签的转换:在更改和平滑过渡时重命名标签名称

来自分类Dev

IE中实时图的d3过渡不平滑

来自分类Dev

IE中实时图的d3过渡不平滑

来自分类Dev

d3 js-用多行更新过渡

来自分类Dev

使用d3 js在phant中绘制json数据

来自分类Dev

使用d3 js的水平条形图

来自分类Dev

在d3中创建新频段时,如何实现平滑过渡?

来自分类Dev

如何使用d3.js在饼图过渡图中显示标签?

来自分类Dev

如何更新D3饼图

来自分类Dev

D3多个饼图更新

来自分类Dev

如何仅过渡圆弧d3.js的radius属性

来自分类Dev

d3.js饼图时钟

来自分类Dev

d3.js饼图时钟

来自分类Dev

d3.js 更新饼图

来自分类Dev

D3 js可折叠图表增加了圆弧曲线的半径

来自分类Dev

使用D3.js可以用平滑线条绘制面积图?

来自分类Dev

用D3.js可以用平滑的线条绘制面积图?

来自分类Dev

d3饼图/甜甜圈图中的标签过渡

来自分类Dev

在饼图中使用鼠标悬停并在 d3 js 中显示标签

来自分类Dev

尝试使用d3在圆上绘制圆弧

来自分类Dev

d3圆弧图-添加顶部半圆

来自分类Dev

在D3 JS中使用对角线函数在两点之间绘制曲线

来自分类Dev

使用Node js和D3实时在地图上绘制状态名称

来自分类Dev

使用d3 js和国家(地区)topojson文件分别绘制状态