2010-06-30 80 views

回答

5

擴展StandardXYItemLabelGenerator往往是一個有用的方法,但所提供的constructors可能就足夠了。對於此發生器中,MessageFormatArgumentIndex值對應於系列名稱範圍

NumberFormat format = NumberFormat.getNumberInstance(); 
format.setMaximumFractionDigits(2); // etc. 
XYItemLabelGenerator generator = 
    new StandardXYItemLabelGenerator("{0} {1} {2}", format, format); 
renderer.setBaseItemLabelGenerator(generator); 
renderer.setBaseItemLabelsVisible(true); 

此外,你可以控制單個系列貼標與

renderer.setSeriesItemLabelsVisible(true); 
+0

另請參閱此[示例](http://stackoverflow.com/a/8932920/230513)「StandardCategoryToolTipGenerator」。 – trashgod 2012-01-19 20:39:44

1

這是在渲染控制:

XYPlot plot = (XYPlot) chart.getPlot(); 
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer(); 
renderer.setBaseItemLabelsVisible(true); 
+0

感謝您的回答。我嘗試過,但現在仍然顯示出來。還有什麼我可能需要做的嗎?也許給每個情節分配標籤? – rmartinus 2010-06-30 23:35:11

+0

我覺得我現在得到它..我已經創建了我自己的項目標籤生成器,稱爲「LegendXYItemLabelGenerator(..)」,並得到它的工作。除了「renderer.setBaseItemLabelsVisible(true);」之外,我還添加了「renderer.setBaseItemLabelGenerator(new LegendXYItemLabelGenerator(plot.getLegendItems()));」 – rmartinus 2010-07-01 00:09:18

+0

這是可能的'XYAreaRenderer'?我試圖讓它工作,我可以爲'XYLineAndShapeRenderer',但相同的代碼不適用於'XYAreaRenderer'。 – skaz 2012-07-13 20:27:24

7

這裏的自定義標籤生成器,我創建:

public class LegendXYItemLabelGenerator extends StandardXYItemLabelGenerator 
     implements XYItemLabelGenerator, Cloneable, PublicCloneable, 
     Serializable { 
    private LegendItemCollection legendItems; 

    public LegendXYItemLabelGenerator(LegendItemCollection legendItems) { 
     super(); 
     this.legendItems = legendItems; 
    } 

    @Override 
    public String generateLabel(XYDataset dataset, int series, int item) { 
     LegendItem legendItem = legendItems.get(series); 
     return legendItem.getLabel(); 
    } 
} 

,然後我說除了這個代碼@ Guilaume代碼:

renderer.setBaseItemLabelsVisible(true); 
renderer.setBaseItemLabelGenerator(new LegendXYItemLabelGenerator(plot.getLegendItems())); 

和這裏的結果:

alt text

+0

+1爲例。我在另一個答案中提出了另一種方法。 – trashgod 2010-07-01 14:56:16

相關問題