HighChart - 按类别名称访问系列数据

时间:2016-10-16 22:03:46

标签: javascript highcharts

问题很简单。如何以编程方式编辑与desired_category_name in this Fiddle对应的数据系列?

$(function() {

  var chart, x,
    btnRemove = $('#remove'),
    btnAdd = $('#add'),
    btnEdit = $('#edit');
  x = 10;
  btnAdd.click(function() {
    chart.series[0].addPoint(Math.floor(Math.random() * 10 + 1)); // Return random integer between 1 and 10.
  });

  btnEdit.click(function() {

    desired_category_name = 'USA'
      // Do something like   chart.series[0].data[i].update(x += 10);

  });

  btnRemove.click(function() {
    if (chart.series[0].points[0]) {
      chart.series[0].points[0].remove();
    }
  });

  $('#container').highcharts({
    chart: {
      plotBackgroundColor: null,
      plotBorderWidth: null,
      plotShadow: false
    },
    title: {
      text: 'No data in pie chart'
    },
    series: [{
      type: 'pie',
      name: 'Random data',
      data: [
        ['USA', 1],
        ['Europe', 2]
      ]
    }]
  });

  chart = $('#container').highcharts();
});

1 个答案:

答案 0 :(得分:2)

您可以使用它访问系列数据 - 它有一个点数组:

  chart.series[0]

您可以使用以下方法修改点:

  chart.series[0].data[0].update( _new_value_ )

每个点都有一个属性“name”,对应于category。

  chart.series[0].data[0].name // USA 

http://jsfiddle.net/3nhm9cjc/

 $('#edit').click(function() {

    desired_category_name = 'USA';
      // Do something like   chart.series[0].data[i].update(x += 10);
      console.log(chart.series[0].data.length)
      for(var i = 0; i< chart.series[0].data.length; i++){

         if(chart.series[0].data[i].name===desired_category_name){
            chart.series[0].data[i].update(10);
         }
      }


  });