Я хотел бы скрыть элементы из легенды в Jfreechart, и я попробовал этот код
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); ///////////////////