JFreeChart using Large Numbers as Values

我与影子孤独终老i 提交于 2019-11-28 09:45:30

问题


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


回答1:


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);



来源:https://stackoverflow.com/questions/33593649/jfreechart-using-large-numbers-as-values

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!