2012-09-24 134 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);