2011-04-26 40 views
2

我想隱藏的JFreeChart從傳說項目,我已經試過這個代碼 jFreeChart: How to hide items from legend?JFreeChart的 - 如何從傳說中隱藏的項目 - 顏色問題

它的工作原理,但奇怪的事情發生了:傳奇的色彩項目不再匹配正確的數據。換句話說,在圖表中,一段數據以黃色顯示,但與此項目對應的圖例以另一種顏色顯示。事實上,傳說中的顏色混雜在一起。

此外,當我嘗試顯示新舊圖例時,沒有顏色問題,但是當我將舊圖例隱藏時,會出現混色問題。很顯然,我不想展示舊的傳奇。

工作代碼=>

LegendItemCollection legendItemsOld = localCombinedDomainXYPlot.getLegendItems(); 
final LegendItemCollection legendItemsNew = new LegendItemCollection(); 

for(int i = 0; i<4; i++){ 
    legendItemsNew.add(legendItemsOld.get(i)); 
} 
LegendItemSource source = new LegendItemSource() { 
    LegendItemCollection lic = new LegendItemCollection(); 
    {lic.addAll(legendItemsNew);} 
    public LegendItemCollection getLegendItems() { 
     return lic; 
    } 
}; 
localJFreeChart.addLegend(new LegendTitle(source)); 

ChartUtilities.applyCurrentTheme(localJFreeChart); 
localJFreeChart.getLegend().setVisible(true); /////////////////// 

不工作密碼=>

LegendItemCollection legendItemsOld = localCombinedDomainXYPlot.getLegendItems(); 
final LegendItemCollection legendItemsNew = new LegendItemCollection(); 

for(int i = 0; i<4; i++){ 
    legendItemsNew.add(legendItemsOld.get(i)); 
} 
LegendItemSource source = new LegendItemSource() { 
    LegendItemCollection lic = new LegendItemCollection(); 
    {lic.addAll(legendItemsNew);} 
    public LegendItemCollection getLegendItems() { 
     return lic; 
    } 
}; 
localJFreeChart.addLegend(new LegendTitle(source)); 

ChartUtilities.applyCurrentTheme(localJFreeChart); 
localJFreeChart.getLegend().setVisible(false); /////////////////// 
+0

[JFreeChart - 有2個傳說的顏色問題]的可能的重複(http://stackoverflow.com/questions/5800774/jfreechart-problem-of-colors-with-2-legends) – trashgod 2011-04-27 17:30:17

回答

1

在此基礎上thread,您可以嘗試添加null元素來取代不必要的圖例項目。其他approach似乎取消不需要的項目,但我不確定你是否也這樣做。爲了澄清,考慮發佈一個sscce來證明問題。其中一個org.jfree.chart.demo類可能是一個合適的起點。

+0

http:// stackoverflow。 com/q/5800774/713006 – Johann 2011-04-27 10:00:00

+0

請更新您的問題,而不是打開一個新問題。 – trashgod 2011-04-27 15:01:33

+0

好的!對不起,我是新的Stackoverflow! ;) – Johann 2011-04-27 15:03:23