我的代码中有两个数组,我想使用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,
}
}]
});
不幸的是,它生成的图表上没有任何数据。有人可以帮我发现我在做什么错吗?
y
和name
应该是单个值。您将必须直接将两个数组转换为对象:
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
}]
});