JFreeChart使用大数字作为值

时间:2015-11-08 11:55:28

标签: jfreechart

我目前正在使用JFreeChart开展项目。我把一切都搞定了,除非我开始使用大数字,这一切都很有趣。

    DefaultCategoryDataset dataset = new DefaultCategoryDataset(); 
    dataset.addValue(1000, "Cars", "2015");    
    dataset.addValue(5000, "Bikes", "2015");
    return dataset; 

上面的输出效果很好,但是当我这样做时:

    DefaultCategoryDataset dataset = new DefaultCategoryDataset(); 
    dataset.addValue(999999999, "Cars", "2015");    
    dataset.addValue(999999999, "Bikes", "2015");
    return dataset; 

999999999转换为1E7,2E7等等。 如何格式化才能正确显示?

这是我的图表代码。

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

任何帮助将不胜感激。 感谢

1 个答案:

答案 0 :(得分:2)

您可以使用setNumberFormatOverride()并传入合适的NumberFormat。将鼠标悬停在任意栏上以查看工具提示中的确切值。

NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
NumberFormat formatter = NumberFormat.getIntegerInstance();
rangeAxis.setNumberFormatOverride(formatter);

image