Sie können Sie Daten vorbereiten, bevor es auf dem Chart Konstruktor wie dies vorbei:
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;
})
Wenn der Wert negativ ist, als ich 0
als y
Eigenschaft verwenden, und speichern Sie den ursprünglichen Wert in der negY
Eigenschaft verwenden sie es später in der dataLabels.formater
:
dataLabels: {
enabled: true,
formatter: function() {
console.log(this);
var point = this.point;
return this.key + " - value: " + (point.negY ? point.negY : point.y);
}
}
Live-Arbeitsbeispiel:http://jsfiddle.net/kkulig/6u7Lzfu9/
API-Referenz:https://api.highcharts.com/highcharts/series.pie.dataLabels.formatter