Alex C.
Alex C.

Reputation: 4081

Highcharts: Y axis label formatter

I have this y axis labels formatter

        yAxis: {
            title: {
                text: null
            },
            labels: {
                formatter: function(){
                    return (Math.abs(this.value) / 1000000) + 'M';
                }
            }
        },

but I need the formater to check if the values is more than million 1000000 then format it accordingly.. I've tried this but it didn't work properly

        yAxis: {
            title: {
                text: null
            },
            labels: {
                formatter: function(){
                    if (this.value > 999999) {
                    return (Math.abs(this.value) / 1000000) + 'M';};
                }
            }
        },

it displayed the labels on one side only.. I'm using the Stacked bar chart pyramid

here is it on JSFiddle

http://jsfiddle.net/chGkK/

Upvotes: 1

Views: 7948

Answers (1)

ljfranklin
ljfranklin

Reputation: 480

The issue is the formatter function only returns a label if the value is greater or equal to 1 million. You need to use the absolute value in this comparison and move the return statement outside the if block:

var absValue = Math.abs(this.value);
if (absValue >= 1000000) {
  absValue = (absValue / 1000000) + 'M';
};
return absValue;

Upvotes: 1

Related Questions