2012-08-24 110 views
1

我想使用jfree圖表顯示條形圖。我可以在y軸上顯示y軸 上的字符串數據,如y軸上的A 0,B 100,但條形圖顯示的時間很長。條形圖顯示格式不正確。 如何在我的數據集中將y值編碼爲整數,同時仍然需要以上述格式顯示字符串數據?Bar JFree圖表y軸

+0

如果沒有更多信息或[SSCCE](http://sscce.org/)顯示您的問題,它非常難以幫助。 – GrahamA

回答

3

SymbolAxis需要爲每個數字小值,所以你需要提供101個值(0 - 100)在你的代碼,而隨後的11

嘗試用

更換

SymbolAxis rangeAxis=new SymbolAxis("", new String[] {"Poor 0", "10","20", "30", "40", "Avg.  50","60","70","80","90","Best 100"}); 
plot.setRangeAxis(rangeAxis); 

//Provide a new Symbol Axis 
String[] grade = new String[101]; 
for (int i = 0 ; i < grade.length ; i ++){ 
    grade[i] = Integer.toString(i); 
} 
grade[0] = "Poor 0"; 
grade[100] = "Best 100"; 
grade[50] = "Avg. 50"; 
SymbolAxis rangeAxis = new SymbolAxis("", grade); 
rangeAxis.setTickUnit(new NumberTickUnit(10)); 
rangeAxis.setAutoRange(false); 
rangeAxis.setRange(0, 100); 
plot.setRangeAxis(rangeAxis); 

使用SymbolAxis#setTickUnit()控制刻度線之間的間隔和你shold得到一個圖表線這個

enter image description here

+0

非常感謝你 – user1622242

+0

嗨,我想要更多的澄清。您發送的代碼僅在報價值計數處顯示字符串值。但如果我必須顯示字符串值之間的時間間隔值,我應該如何進行? – user1622242

+0

如果@GrahamA給出的答案解決了您的問題,那麼您應該接受它,以便其他人通過搜索重定向到此頁面也可以使用此解決方案。 – dirtyhandsphp