如何使用jfreechart计算在折线图中添加的系列号码?

时间:2017-03-14 07:44:50

标签: java jasper-reports jfreechart

我使用ireport设计了4系列折线图。我需要使用jfreechart

计算我的自定义类中的那些系列
LineAndShapeRenderer lineAndShapeRenderer = new LineAndShapeRenderer();
lineAndShapeRenderer.setSeriesPositiveItemLabelPosition(0,new ItemLabelPosition(ItemLabelAnchor.CENTER,TextAnchor.TOP_LEFT));
lineAndShapeRenderer.setSeriesPositiveItemLabelPosition(1,new ItemLabelPosition(ItemLabelAnchor.INSIDE5,TextAnchor.TOP_LEFT));
lineAndShapeRenderer.setSeriesPositiveItemLabelPosition(2,new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,TextAnchor.BOTTOM_RIGHT));
lineAndShapeRenderer.setSeriesPositiveItemLabelPosition(3,new ItemLabelPosition(ItemLabelAnchor.OUTSIDE1,TextAnchor.BOTTOM_LEFT));

而不是上面的硬编码我需要使用像 lineAndShapeRenderer.getSeriesCount();

但是我没有得到这样的方法或其他线索来设置如下

for (int i=0 ;i<lineAndShapeRenderer.getSeriesCount();i++)
    lineAndShapeRenderer.setSeriesPositiveItemLabelPosition(i,new ItemLabelPosition(ItemLabelAnchor.OUTSIDE1,TextAnchor.BOTTOM_LEFT));

请帮助我解决这个问题,不要使用折线图中的系列 - ireport。

1 个答案:

答案 0 :(得分:1)

您可以从用于创建图表的数据集中获取系列数。例如,CategoryDataset每个系列都有一行。你可以这样做:

int seriesCount = dataset.getRowCount();

编辑:在评论中,您说

  

categoryPlot.getLegendItems().getItemCount() ...帮助我变得没有。折线图中使用的系列。

图例项目是视图的一部分;我问模特。如果您有对图的引用,则可以获得对数据集的引用:

CategoryPlot categoryPlot = (CategoryPlot) chart.getPlot();
CategoryDataset dataset = categoryPlot. getDataset();
int seriesCount = dataset.getRowCount();