gpt4 book ai didi

java - JfreeChart - 如何从图例中隐藏项目 - 颜色问题

转载 作者:行者123 更新时间:2023-11-30 11:54:16 25 4
gpt4 key购买 nike

我想在 Jfreechart 中隐藏图例中的项目,我已经尝试过这段代码 jFreeChart: How to hide items from legend?

它有效,但发生了一些奇怪的事情:图例项目的颜色不再与正确的数据匹配。换句话说,在图表中,例如,一条数据显示为黄色,但对应于该项目的图例显示为另一种颜色。事实上,传说中的颜色已经混合了。

此外,当我尝试同时显示新旧图例时,没有颜色问题,但是当我使旧图例不可见时,出现了混合颜色的问题。显然,我不想显示旧图例。

工作代码=>

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); ///////////////////

最佳答案

基于此thread ,您可以尝试添加一个 null 元素来替换不需要的图例项。其他approach似乎消除了不需要的项目,但我不确定你是否也在这样做。为了澄清,考虑发布 sscce这说明了问题。 org.jfree.chart.demo之一类(class)可能是一个合适的起点。

关于java - JfreeChart - 如何从图例中隐藏项目 - 颜色问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5788092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com