JFreeChart 使用大数作为值

Posted

技术标签:

【中文标题】JFreeChart 使用大数作为值【英文标题】:JFreeChart using Large Numbers as Values 【发布时间】:2015-11-08 11:55:28 【问题描述】:

我目前正在使用 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】:

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

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

【讨论】:

工作 100%。非常感谢。

以上是关于JFreeChart 使用大数作为值的主要内容,如果未能解决你的问题,请参考以下文章

JFreeChart的使用

使用 JFreeChart 在 x 轴上的日期时间

JFreechart - 想要自定义 Y 轴值

JfreeChart折线图 CSDN-李鹏飞

如何将 Java 日期字符串/对象转换为 JFreeChart 日期格式?

使用数据访问对象和 Servlet 获取 JFreeChart 数据