Search code examples
javajfreechart

Changing axis to percentage in TimeSeriesChart


I'm trying to show the value on my time chart as percentages. My code is currently

    TimeSeries ts = new TimeSeries("Test");
    ts.add(new Month(2,2001), 50);
    ts.add(new Month(2,2002), 70);
    TimeSeriesCollection ts1 = new TimeSeriesCollection();
    ts1.addSeries(ts);



    JFreeChart chart = ChartFactory.createTimeSeriesChart("test", "x", "y", ts1, true, true,false);
    XYPlot plot = (XYPlot) chart.getXYPlot();
    NumberAxis axis = (NumberAxis) plot.getRangeAxis();
    axis.setTickUnit(new NumberTickUnit(10));
    DecimalFormat format = new DecimalFormat("#%");
    axis.setNumberFormatOverride(format);
    axis.setRange(0, 100);

    ChartPanel chartPanel = new ChartPanel(chart);

This does show percentages but it shows them as 1000%,2000% etc. I want them to be 10%,20% etc. Does anyone know where i went wrong?


Solution

  • I've managed to fix it by using

            format.setMultiplier(1);
    

    and changed

            DecimalFormat format = new DecimalFormat("#%");
    

    to

            DecimalFormat format = new DecimalFormat("##%");