我需要隐藏图例中的每个第二/第三/第四项。有没有办法在jFreeChart中实现这一目标? 谢谢!
答案 0 :(得分:9)
我已尝试过上述建议,但似乎对我没有用。如果您只想从图例中删除系列,可以使用setSeriesVisibleInLegend()
方法执行此操作。我的情况是我的一些系列没有传奇键。如果它们没有图例键,则图例不应在图例中可见。我用以下代码实现了这个:
for(int i = 0; i < seriesList.size(); i++){
if(seriesList.get(i).getKey() == null || seriesList.get(i).getKey().equals("")){
graph.getXYPlot().getRenderer().setSeriesVisibleInLegend(i, Boolean.FALSE);
}
}
seriesList
是我创建的seriesData
pojo列表,其中包含所有图形数据以创建图形。如果seriesData
对象的键值为null
或= ""
,则系列将不会在图例中显示。
答案 1 :(得分:4)
LegendItemCollection legendItemsOld = plot.getLegendItems();
final LegendItemCollection legendItemsNew = new LegendItemCollection();
for(int i = 0; i< legendItemsOld.getItemCount(); i++){
if(!(i%2 == 0)){
legendItemsNew.add(legendItemsOld.get(i));
}
}
LegendItemSource source = new LegendItemSource() {
LegendItemCollection lic = new LegendItemCollection();
{lic.addAll(legendItemsNew);}
public LegendItemCollection getLegendItems() {
return lic;
}
};
chart.addLegend(new LegendTitle(source));