【发布时间】:2010-07-27 09:52:36
【问题描述】:
我需要从图例中隐藏每第二/第三/第四项。有没有办法在 jFreeChart 中实现这一点? 谢谢!
【问题讨论】:
标签: jfreechart
我需要从图例中隐藏每第二/第三/第四项。有没有办法在 jFreeChart 中实现这一点? 谢谢!
【问题讨论】:
标签: jfreechart
我已经尝试了上述建议,但它似乎对我不起作用。如果您只想从图例中删除系列,您可以使用 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 或= "",则该系列将在图例中不可见。
【讨论】:
好的,我自己做的。这样我就从图例中删除了每隔一个项目。 请离开cmets!
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));
【讨论】: