Page 1 of 1

Displaying range axis tick labels in millions

Posted: Sun Oct 31, 2010 11:32 pm
by davesnowdon
I'm using JfreeChart 1.0.13 to display a CombinedDomainXYPlot with price data using a line chart on top and a bar chart displaying volume data underneath.

Since the volumes can be quite large (eg 60 million) a lot of space is being used for the range axis labels.

Is there any way to display the tick labels in millions - for example to display 6m instead of 6,000,000?

thanks

Dave

Re: Displaying range axis tick labels in millions

Posted: Mon Nov 01, 2010 4:45 pm
by skunk
You could try something like this:

Code: Select all

rangeAxis.setNumberFormatOverride(new DecimalFormat() {
    public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos) {
        if (number >= 1000000) {
            toAppendTo.append((int)(number / 1000000));
            toAppendTo.append("m");
        }
        else if (number >= 1000) {
            toAppendTo.append((int)(number / 1000));
            toAppendTo.append("k");
        }
        else {
            toAppendTo.append((int)number);
        }
        return toAppendTo;
    }
});

Re: Displaying range axis tick labels in millions

Posted: Tue Nov 02, 2010 9:57 pm
by davesnowdon
Works like a charm - many thanks!
Dave