动态将新数据添加到Highchart饼图中

时间:2019-05-21 20:57:25

标签: javascript highcharts

我正在使用图表来制作饼图,但是我需要定期对其进行更新,而当我尝试这样做时,它并不能反映出更改。

具有此代码

var HChart=Highcharts.chart('container', {
    chart: {
        plotBackgroundColor: null,
        plotBorderWidth: 0,
        plotShadow: false
    },
    title: {
        text: 'Browser<br>shares<br>2017',
        align: 'center',
        verticalAlign: 'middle',
        y: 40
    },
    tooltip: {
        pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
    },
    plotOptions: {
        pie: {
            dataLabels: {
                enabled: true,
                distance: -50,
                style: {
                    fontWeight: 'bold',
                    color: 'white'
                }
            },
            startAngle: -90,
            endAngle: 90,
            center: ['50%', '75%'],
            size: '110%'
        }
    },
    series: [{
        type: 'pie',
        name: 'Browser share',
        innerSize: '50%',
        data: [
            ['Chrome', 48.9],
            ['Otro ahi no se',10],
            ['Firefox', 13.29],
            ['Internet Explorer', 13],
            ['Edge', 3.78],
            ['Safari', 3.42]

        ]
    }]
});

我了解到您可以更改数据,但它不会反映在图表上,但仍会显示旧值

我没有成功尝试过

$("#boton").on("click",function() {
    console.log("por aca paso");
    HChart.series[0].data.push({name:"Otra Diferente", y:7.61});
});

没有错误消息,只是一个不变的图形

1 个答案:

答案 0 :(得分:2)

要动态更新数据,可以使用Highcharts方法,例如:updatesetDataaddPoint。检查下面发布的API链接和演示。

代码:

var btn = document.querySelector('#btn');

btn.addEventListener('click', function() {
  console.log("por aca paso");
  HChart.series[0].addPoint({
    name: "Otra Diferente",
    y: 7.61
  });
});

演示:

API参考: