有人会向我解释为什么这不起作用。我想在列顶部显示值和百分比,但使用下面的值返回NaN作为百分比值。
以下是返回的数据。
xAxis: { categories: ['a', 'b', 'c', 'd', 'e', 'f'] },
series: [{ data: [1, 4, 3, 7, 10, 1], name: 'Value' }]
.SetPlotOptions(new PlotOptions
{
Column = new PlotOptionsColumn
{
DataLabels = new PlotOptionsColumnDataLabels
{
Enabled = true,
Formatter = "function() { var dataSum = 0; for (var i = 0; i < this.series.data.length; i++) { dataSum += this.series.data[i] }; var pcnt = (this.y / dataSum) * 100; return '<b>Value</b>: ' + this.point.y + '<br/>' + '<b>Percent</b>: ' + pcnt + '%'; }"
}
}
})
答案 0 :(得分:2)
我认为dataSum
仍为0。
this.series.data.length
和this.series.data[i]
未定义。请改用this.series[0].data.length
和this.series[0].data[i]
。
答案 1 :(得分:2)
问题在于您的代码的这一部分:
dataSum += this.series.data[i]
现在你正试图加分......但我很确定你想要加分积分&#39; y值:
dataSum += this.series.data[i].y
演示:http://jsfiddle.net/Ywr3L/41/
额外注意事项:
您将获得长数字,尝试在函数返回时显示pcnt.toFixed(2)
而不是pcnt
。