あなたはちょうどこのように、チャートのコンストラクタに渡す前に、あなたのデータを準備することができます
data: [
['Firefox', -45.089],
['IE', 26.8],
['Chrome:', -10],
['Safari', 8.5],
['Opera', 6.298],
['Others', 0.7]
].map(function(pointArr) {
var newPoint = {
name: pointArr[0]
},
value = pointArr[1];
if (value < 0) {
newPoint.y = 0;
newPoint.negY = value;
} else {
newPoint.y = value
}
return newPoint;
})
私はy
プロパティとして0
を使用してにnegY
プロパティで元の値を保存するよりも、値が負の場合dataLabels.formater
で、後でそれを使用します。
dataLabels: {
enabled: true,
formatter: function() {
console.log(this);
var point = this.point;
return this.key + " - value: " + (point.negY ? point.negY : point.y);
}
}
ライブ作業例:http://jsfiddle.net/kkulig/6u7Lzfu9/
APIリファレンス:https://api.highcharts.com/highcharts/series.pie.dataLabels.formatter