使用更新功能时,Chart.js更改选定的图例过滤器

脾气暴躁的克鲁顿

我正在使用Chart.js在网页上显示堆积的条形图。我正在尝试使此图表在页面上自动更新而无需用户干预,为此,我正在使用AJAX。

setInterval(function() {

    $.get("ajax?type=chart_update&id={{ @GET.id }}", function(data){
        myChart.data = JSON.parse(data);
        myChart.update(0);
    });

}, 60000);

每60秒成功重置一次图表。

但是,当用户通过单击图例中的某个数据集将其过滤掉时,就会出现问题。update()运行功能时,此过滤器也会重置。在我看来,这不应该是预期的行为,我不是在尝试更新表的视图,而只是更新数据以使其保持最新。

当表中的数据更新时,如何使此过滤器不重置?

这是一个Codepen来显示此问题。要重新创建图例,只需单击图例中的值之一,然后单击“更新表”按钮即可显示图例每次都被重置。

猎头者凯夫

我不喜欢合并图表和数据。我要dataoptions作为单独的变量。这样,您的update()作品便会变得魅力无限,并且变得更短,更容易阅读。JSBin包含所有代码

var chartOptions = {
    scales: {
        xAxes: [{
            stacked: true
        }],
        yAxes: [{
            stacked: true
        }]
    }
}

var chartData = {
    labels: ["First", "Second", "Third", "Fourth"],
    datasets: [{
        label: 'First',
        data: [12, 19, 3, 5],
        backgroundColor: 'red'
    },{
        label: 'Second',
        data: [5, 19, 3, 5],
        backgroundColor: 'blue'
    },{
        label: 'Third',
        data: [8, 19, 3, 5],
        backgroundColor: 'green'
    },{
        label: 'Fourth',
        data: [9, 19, 3, 5],
        backgroundColor: 'orange'
    }]
}

var ctx = document.getElementById("myChart");
var stackedBar = new Chart(ctx, {
    type: 'bar',
    data: chartData,
    options: chartOptions
});

function updateChart() {
    chartData.datasets.forEach(function(element) {
        element.data = r();
    });
    stackedBar.update();
}

function r() {
    var values = [];
    for (i = 0; i < 4; i++) { 
        values.push(Math.floor(Math.random() * 100) + 1);
    }
    return values;
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用更新功能后,Chart.js不根据插件重新行

来自分类Dev

如何使用d3过滤器和更新功能在数据选择之间切换

来自分类Dev

使用“多个过滤器”的Angular JS

来自分类Dev

在openlayers 3上,如何在更新功能时暂停更改事件?

来自分类Dev

Angular JS-数字过滤器-负数时更改颜色

来自分类Dev

使用react.js实现过滤器功能

来自分类Dev

当用户更改下拉过滤器中的值时,Django过滤器会更新查询

来自分类Dev

为什么要使用Object.assign()更新功能组件道具更改?

来自分类Dev

使用MongoDB更新功能无法正确更改用户名?

来自分类Dev

如果更改了过滤器,则更新ReadOnlyObservableCollection

来自分类Dev

SwiftUI更改过滤器并更新视图

来自分类Dev

使用angular.js过滤器按月过滤日期

来自分类Dev

在自定义过滤器Angular JS中使用数字过滤器

来自分类Dev

使用 dc.js 的简单列表过滤器和搜索过滤器?

来自分类Dev

使用预匹配过滤器更改uri路径

来自分类Dev

使用RxAndroid观察文本更改和过滤器列表

来自分类Dev

使用过滤器更改SaveFileDialog行为

来自分类Dev

使用过滤器更改单元格引用

来自分类Dev

如何使用动作过滤器更改输入参数

来自分类Dev

countif 使用自动过滤器更改多列

来自分类Dev

单击时更改选定的选项

来自分类Dev

创建过滤器功能

来自分类Dev

迅捷过滤器功能

来自分类Dev

如何使用javascript过滤器功能

来自分类Dev

使用Javascript的过滤器功能

来自分类Dev

使用jQuery更改选定的选项

来自分类Dev

仅在PostgreSQL中使用具有选定值的过滤器对列值求和

来自分类Dev

使用不带交叉过滤器的dc.js

来自分类Dev

Knockout.js:使用过滤器绑定foreach

Related 相关文章

热门标签

归档