的每個類別參考YDATA我有一個柱形圖,其顯示兩個系列,具有用於數年的數據。如何從另一系列在highcharts柱形圖
每年都有每個兩個系列的一列。
我想創建一個數據標籤,這些列,顯示了兩列的每一年的價值(YDATA的總和)的總和的百分比。爲此,我需要引用當前y值和給定類別(年)中兩個y值的總和。
我已經試過這樣的事情:
dataLabels:{
enabled:true,
formatter:function(e) {
var mychart = $('#e_74').highcharts();
var sum = parseInt(mychart .series[1].yData, 10) + parseInt(mychart .series[0].yData, 10);
var pcnt = (this.y/sum * 100);
return Highcharts.numberFormat(pcnt) + '%';
}
}
問題:
這適用於第一年/類別,因爲YDATA的總和永遠是第一位的總和這兩個系列的元素 - 所以它在第一年是正確的。然而,隨後的幾年仍然會參考前兩個要素的總和 - 使後續的數據標籤不準確。
我如何可以參考YDATA的電流總和各個類別?
提前感謝您的時間。
這是我的工作進展情況的jsfiddle
這裏是完整的代碼,我想實現這個圖
$(function() {
$('#e_74').highcharts({
chart: {
type: 'column'
},
credits: {
enabled: false
},
noData: {
style: {
fontWeight: 'bold',
fontSize: '20px'
}
},
title: {
text: 'Title',
},
navigation: {
buttonOptions:
{
enabled: false
}
},
xAxis: {
categories: [2013, 2014]
},
yAxis: {
min: 0,
title: {
text: 'Number '
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y:,.0f} </b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0,
borderWidth: 0
},
series: {
dataLabels:{
enabled:true,
formatter:function(e) {
var mychart = $('#e_74').highcharts();
var sum = parseInt(mychart.series[1].yData[1], 10) + parseInt(mychart.series[0].yData[1], 10);
var pcnt = (this.y/sum * 100);
return Highcharts.numberFormat(pcnt) + '%';
}
}
}
},
series: [{showInLegend: true, name: 'With trained HW', data: [94426, 147615]}, {showInLegend: true, name: 'Without trained HW', data: [16863, 29198]}]
});
});
更新答案與更高效的例子 – jlbriggs