我如何在Highcarts中使用数组?

问题描述 投票:0回答:1

我的代码中有两个数组,我想使用Highcharts在饼图上绘制一些数据。一个数组包含该数据的标签,另一个数组包含该数据。这是我尝试过的:

arr1 = [10, 39, 30]
arr2 = ['one', 'two', 'three']


Highcharts.chart('container-2', {
  chart: {
    margin: [0, 0, 0, 0],
    spacingTop: 0,
    spacingBottom: 0,
    spacingLeft: 0,
    spacingRight: 0,
    plotBackgroundColor: null,
    plotBorderWidth: null,
    plotShadow: false,
    type: 'pie'
  },
  title: {
    text: 'Example'
  },
  tooltip: {
    pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
  },
  plotOptions: {
    pie: {
      size: '50%',
      allowPointSelect: true,
      cursor: 'pointer',
      dataLabels: {
        enabled: true,
        format: '<b>{point.name}</b>: {point.percentage:.1f} %'
      }
    }
  },
  series: [{
    name: 'Balances',
    colorByPoint: true,
    data: {
        y: arr1,
        name: arr2,
    }
  }]
});

不幸的是,它生成的图表上没有任何数据。有人可以帮我发现我在做什么错吗?

javascript highcharts
1个回答
0
投票

yname应该是单个值。您将必须直接将两个数组转换为对象:

let data = {}
for(let i=0;i<arr1.length;i++){
    data[arr2[i]] = data[arr1[i]];
}

然后在图表选项中:

Highcharts.chart('container-2', {
    ...
    series: [{
        name: 'Balances',
        colorByPoint: true,
        data: data
    }]
});
© www.soinside.com 2019 - 2024. All rights reserved.