I am currently working on a project using JFreeChart. I got everything working except when I start using large numbers, it goes all funny.
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1000, "Cars", "2015");
dataset.addValue(5000, "Bikes", "2015");
return dataset;
Output from above works perfect, but when I do this:
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(999999999, "Cars", "2015");
dataset.addValue(999999999, "Bikes", "2015");
return dataset;
The 999999999 is converted to something like 1E7, 2E7, etc, etc. How do I format it to show correctly?
This is my chart code.
JFreeChart chart = ChartFactory.createBarChart3D("My Title", "", "", catdata, PlotOrientation.VERTICAL, true, true, false);
BufferedImage bufferedImage = chart.createBufferedImage(780, 170, BufferedImage.TYPE_INT_RGB, null);
ImageIO.write(bufferedImage, "jpeg", out);
Any help will be much appreciated. Thanks
You can use setNumberFormatOverride()
and pass in a suitable NumberFormat
. Hover over any bar to see the exact value in a tool tip.
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
NumberFormat formatter = NumberFormat.getIntegerInstance();
rangeAxis.setNumberFormatOverride(formatter);