首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >plottable.js线图中的自定义动画

plottable.js线图中的自定义动画
EN

Stack Overflow用户
提问于 2015-12-14 09:17:33
回答 1查看 299关注 0票数 0

当数据更新时,我试图在plottable.js中使用自定义动画。以下是我的代码:-

代码语言:javascript
复制
<script type="text/javascript">

    var xScale = new Plottable.Scales.Category();
    var yScale = new Plottable.Scales.Linear().domain([0,30]);

    var xAxis = new Plottable.Axes.Category(xScale, "bottom");
    var yAxis = new Plottable.Axes.Numeric(yScale, "left");

    var dataset;

    var data;

    function createChart() {
        data = [];

        for(var i=0; i<10; i++) {
            data.push({x:"Data" + (i + 1),y:Math.abs(Math.random() * 10)});
        }

        dataset = new Plottable.Dataset(data);
        makeChart();
    }

    function updateChart() {
        data = [];

        for(var i=0; i<10; i++) {
            data.push({x:"Data" + (i + 1),y:Math.abs(Math.random() * 10)});
        }

        dataset.data(data);
    }

    function makeChart() {
        var linePlot = new Plottable.Plots.Line()
            .addDataset(dataset)
            .x(function(d) { return d.x; }, xScale)
            .y(function(d) { return d.y; }, yScale)
            .attr("stroke","#FA8116")
            .animated(true)
            .animator("test",new Plottable.Animators.Easing().easingMode("bounce"));

        var label_y = new Plottable.Components.AxisLabel("Parameter 2", -90);
        var label_x = new Plottable.Components.AxisLabel("Parameter 1", 0);

        var chart = new Plottable.Components.Table([
        [label_y, yAxis, linePlot],
        [null, null, xAxis],
        [null, null, label_x]
        ]);

        chart.renderTo("svg#lineChart");

        // Responsive Layout
        window.addEventListener("resize", function() {
            chart.redraw();
        });
    }   

    $(document).ready(function() {
        createChart();
        setInterval(function(d) {
            updateChart();
        },5000);
    });

</script>

我想要动画的线条除了默认,我这样做了:-

代码语言:javascript
复制
var linePlot = new Plottable.Plots.Line()
            .addDataset(dataset)
            .x(function(d) { return d.x; }, xScale)
            .y(function(d) { return d.y; }, yScale)
            .attr("stroke","#FA8116")
            .animated(true)
            .animator("test",new Plottable.Animators.Easing().easingMode("bounce"));

我不知道我在哪里是正确的,既然我是新手,你们能帮我解决问题吗,还有什么方法可以用d3制作可绘制动画吗?如果是,可以提供代码段吗?

事先鸣谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-14 18:52:06

Plots通常有两个Animators:MAINRESET。您需要指定要更改Plot上的主Plot

代码语言:javascript
复制
plot.animator(Plottable.Plots.Animator.MAIN,
    new Plottable.Animators.Easing().easingMode("bounce"));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34263256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档