C# DotNet.Highcharts 列数据标签百分比



有人可以向我解释为什么这不起作用吗?我想在列的顶部同时显示值和百分比,但是,使用下面的返回 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 + '%'; }"
                    }
                }
            })

问题出在代码的这一部分:

dataSum += this.series.data[i] 

现在你正在尝试对点求和......但我很确定你想对点的 y 值求和:

dataSum += this.series.data[i].y

演示:http://jsfiddle.net/Ywr3L/41/

额外说明:

你会得到长数字,尝试在函数的返回中显示pcnt.toFixed(2)而不是pcnt

我认为dataSum仍然是0。

this.series.data.lengththis.series.data[i]未定义。请改用this.series[0].data.lengththis.series[0].data[i]

最新更新