Highcharts饼图 - 在图例中将负值显示为“null”

时间:2013-07-03 21:45:05

标签: jquery highcharts pie-chart

我正在使用HighCharts创建饼图,但我正在使用的数据集具有负数。负面的部分是如此之小,以至于它在饼图本身中无关紧要,但我在图例中有显示问题。我找到了一个较旧的演示版,它使用的旧版本的highcharts.js显示负数http://jsfiddle.net/AdW2Z/8/

 pie: {
        allowPointSelect: true,
        cursor: 'pointer',
        dataLabels: {
            enabled: false,
            formatter: function () {
                return this.point.positive ? this.y : this.y * (-1);
            },
            color: 'black',
            style: {
                font: '13px Trebuchet MS, Verdana, sans-serif'
            }
        },

我尝试使用相同的代码,但使用当前版本的highcharts.js,但这就是我在图例中获得“null”的地方: http://jsfiddle.net/bRZaw/1/

我有什么想法可以解决这个问题?我和过去3天一直在争吵。谢谢你提前!

3 个答案:

答案 0 :(得分:1)

饼图应该代表总数的一部分,所以预计负数不会起作用,因为你不能有总数的负数部分。如果您需要表示负值,那么您可能应该使用其他类型的图表。

如果您确实想要显示该值(假设您说它并非真正重要),请尝试将其包装在绝对值中,Math.abs(yourValue)应该可以解决问题。

答案 1 :(得分:1)

通过更新labelFormatter,您可以在图例中为负数显示0,如下所示:

labelFormatter: function () {
    if (this.y === null) {
        return this.name + ': 0%';
    } else {
        return this.name + ': ' + this.y + '%';
    }
}

http://jsfiddle.net/bRZaw/3/

答案 2 :(得分:0)

可以在this.options.y中找到包含用户数据的原始对象,因此您始终可以使用该值,请参阅:http://jsfiddle.net/bRZaw/9/