2012-09-24 133 views
2

请如何更改Y轴使数据以相同位数显示。
在jFreechart上显示Y轴

This is what I have on my graph

,这是产生图

final CategoryPlot plot = (CategoryPlot)result.getPlot(); 
plot.setBackgroundPaint(Color.BLACK); 
plot.setDomainGridlinePaint(Color.white); 
plot.setRangeGridlinePaint(Color.white); 

NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); 
rangeAxis.setRange (1.2, 1.3); 
rangeAxis.setStandardTickUnits(NumberAxis.createStandardTickUnits()); 
rangeAxis.setTickUnit (new NumberTickUnit(0.005)); 

正如你可以看到,我修复开始在1.2和1.3的端的部分的代码和我定义TickUnit在0.005。所以normaly(我认为)我应该有一些像gradualy: 1.2 1.205 1.210 1.305 ...


This is what I would like to obtain

如何修改代码,即可获得Y轴与gradues值? 感谢

我想我已经找到了这种解决方案

DecimalFormat df = new DecimalFormat("0.000"); 
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); 
rangeAxis.setRange (1.200, 1.300); 
rangeAxis.setStandardTickUnits(NumberAxis.createStandardTickUnits()); 
rangeAxis.setTickUnit (new NumberTickUnit(0.005, df, 0)); 

它似乎很好地工作。 谢谢

+0

代码的结果是什么?它与预期的结果有什么不同? – Baz

+0

我已经编辑的代码与屏幕截图的链接到我有什么,我需要在最后。谢谢 – DeathCoder

回答

4

图表轴将接受一个java.text.NumberFormat实例,它将用它来格式化标签。为此,请尝试将以下代码行添加到您的代码中:

DecimalFormat newFormat = new DecimalFormat("0.000"); 
rangeAxis.setNumberFormatOverride(newFormat);