我使用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。
答案 0 :(得分:1)
您可以从用于创建图表的数据集中获取系列数。例如,CategoryDataset
每个系列都有一行。你可以这样做:
int seriesCount = dataset.getRowCount();
编辑:在评论中,您说
categoryPlot.getLegendItems().getItemCount()
...帮助我变得没有。折线图中使用的系列。
图例项目是视图的一部分;我问模特。如果您有对图的引用,则可以获得对数据集的引用:
CategoryPlot categoryPlot = (CategoryPlot) chart.getPlot();
CategoryDataset dataset = categoryPlot. getDataset();
int seriesCount = dataset.getRowCount();