2012-03-21 68 views
4

基本上我有一個非常類似的問題在下面的文章:http://www.jfree.org/phpBB2/viewtopic.php?t=24713JFreeChart的 - 如何提高標籤的餅圖中

除了使用代替版本的差異,我對標籤結果很像第三餅圖,我更願意讓它們像第一張圖(每行更多空間 - 更寬的行),以便它們不必如此快速地換行到下一行。我嘗試了所有我能想到的增加標籤尺寸的東西,但似乎沒有任何工作。

我的主要想法是調整標籤開始寫入的位置,並通過大量源代碼調試,我可以擴展盒子的大小,但不能擴展實際的字符串。如果不通過某種配置編輯源代碼,我找不到方法來完成它,即使如此,我仍然無法正確調整文本,只能調整文本框。而且它花了很多努力,代碼不在兩個地方。

有關如何設置餅圖的建議,以使上述文章中所示的標籤更像第一張圖表而非上一張圖表,敬請諒解。我做了這個帖子中的建議:

plot.setInteriorGap(0.02); 
plot.setMaximumLabelWidth(0.20); 
plot.setLabelLinkStyle(PieLabelLinkStyle.CUBIC_CURVE); 

但它沒有真正的區別。最新版本的默認值是CUBIC_CURVE。 setInteriorGap確實有輕微的改進,但它很小。而另一條線則什麼也沒做。

真正令人不安的是生成的圖表左側和右側有多少空白區域。能夠以某種方式使用該空間將是非常好的。

回答

0

我不確定第一個問題。不過,我對於如何處理剩餘的空白有一些想法。

如果您在圖表轉換成圖像,你可以嘗試通過以下修整周圍的空白:

BufferedImage chartImage = chart.createBufferedImage(width, height); 
chartImage = chartImage.getSubImage(howMuchToTrimOnLeft, howMuchtoTrimOnTop, width - howMuchToTrimOnLeft - howMuchToTrimOnRight, height - howMuchtoTrimOnTop - howMuchToTrimOnBottom); 

產生的chartImage將包含修剪的版本。確保將初始寬度和高度值設置爲大於您希望圖表佔據的區域的尺寸,然後將其縮小至最小。