javascript - 更改/交换 Highcharts 数据

标签 javascript highcharts

我已经使用 Highcharts 设置了饼图,我需要通过按钮交换数据。第二个按钮(远程)交换数据没有问题,但是当我尝试使用第一个按钮(立即)交换回原始数据时,它不起作用。

这是我的代码笔: https://codepen.io/doitliketyler/pen/mQMyGe?editors=1011

我的按钮如下所示:

$('#immediate').click(function() {
  chart.series[0].setData(immediate);
});

$('#distant').click(function() {
  chart.series[0].setData(distant);
});

关于如何正确完成此操作有什么想法吗?

最佳答案

给你。问题是,当您设置其中一个数据数组时,它会通过引用传递,因此两个数据集都指向同一事物。因此,首先复制您要设置的数据。然后设置一个空数组作为数据以清除 highcharts 数据,然后使用复制数组进行设置。

var chart = Highcharts.chart('container', {
  chart: {
    type: 'pie'
  },
  title: {
    text: 'Swap Pie Data'
  },
  series: [
    {
      id: 'relative',
      name: 'Immediate',
      type: 'pie',
      size: '100%',
      innerSize: '30%',
      colorByPoint: true,
      data: immediate
    },
    {
      type: 'pie',
      size: '30%',
      name: 'Original',
      colorByPoint: true,
      data: original
    }
  ]
});

$('#immediate').click(function() {
  var temp = immediate.slice(0);

  chart.series[0].setData([]);
   chart.series[0].setData(temp);

});

$('#distant').click(function() {
    var temp = distant.slice(0);

    chart.series[0].setData([]);
    chart.series[0].setData(temp);
});

关于javascript - 更改/交换 Highcharts 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53343913/

相关文章:

javascript - 如何在 MomentJS 中格式化时间/持续时间,使其以小时、分钟和秒为单位

javascript - 使用外部网络摄像头的快照按钮触发事件

javascript - 卡住数组的元素

javascript - Highcharts 导入在 Django 中正确加载 - Python

highcharts - 可以使用类型为 "datetime"的 xAxis 和带有类别的 yAxis 吗?

javascript - 我不明白为什么图表上的tickinterval和 'dot'没有对齐?

javascript - Cargo Collective 传统分页

javascript - jquery Draggable stop能否获取停止过的对象属性数据-*

javascript - 处理条形图中的点击事件

javascript - HighCharts 在饼图上显示图表中的选定点