【问题标题】:D3.js multiple line graph transitionsD3.js 多线图过渡
【发布时间】:2013-06-25 06:06:52
【问题描述】:

我想知道为什么这个多线图上的过渡与它所基于的动画单线图相比是跳跃的:http://www.animatedcreations.net/d3/lineChartAnimated.html

这里提供的小提琴: http://jsfiddle.net/user2477109/QBDGB/

问题是单独更新所有路径吗?它似乎效率低下。谢谢。

graph.select(".line1").attr("d", line).attr("transform", null);
graph.select(".line2").attr("d", line).attr("transform", null);
graph.select(".line3").attr("d", line).attr("transform", null);
graph.select(".line4").attr("d", line).attr("transform", null);

// slide the line left
path1
    .transition()
    .duration(duration)
    .attr("transform", "translate(" + x(t-n+1) + ")");

path2
    .transition()
    .duration(duration)
    .attr("transform", "translate(" + x(t-n+1) + ")");

path3
    .transition()
    .duration(duration)
    .attr("transform", "translate(" + x(t-n+1) + ")");

path4
    .transition()
    .duration(duration)
    .attr("transform", "translate(" + x(t-n+1) + ")");

// slide the x-axis left
    axis.transition()
    .duration(duration)
    .ease("linear")
    .call(xAxis)
    .each("end", tick);

【问题讨论】:

    标签: graph d3.js line transition


    【解决方案1】:

    您忘记了.ease('linear') 选项:

    path1
        .transition()
        .duration(duration)
        .ease("linear")
    

    小提琴:http://jsfiddle.net/chrisJamesC/QBDGB/4/

    作为备注,您应该考虑在四行上循环或对行使用另一个迭代器,因为在这里您硬编码行数

    【讨论】:

    • 我不敢相信我错过了!另外,我想知道为什么单线在线上有恒定的平滑重绘,而四线图没有?有没有可能用不止一条线来达到这种效果?
    • 只需在每次转换时使用它,正如您在 jsFiddle 中看到的那样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多