了解为JFreeChart创建定制程序类的总系列

时间:2013-09-05 23:04:42

标签: java jasper-reports jfreechart

我在 iReport 中创建了一个报告(使用折线图),并使用 JasperReports 库在我​​的网络应用程序中打印报告。

我使用自定义程序类来自定义折线图中的几个选项。现在因为该类在所有图表中都很常见。

现在我的一些图表有2个系列,有人只有1个。

有什么方法可以让我知道班上的系列剧。

以下是示例类。我想将所有系列的形状设置为相同。

public class LineChartCustomizer implements JRChartCustomizer  {

    private static Log  log = LogFactory.getLog(LineChartCustomizer.class);

    @Override
    public void customize(JFreeChart jFreeChart, JRChart jrChart) {

        CategoryPlot plot = jFreeChart.getCategoryPlot();

        LineAndShapeRenderer renderer = new LineAndShapeRenderer();                        

        renderer.setSeriesShape(0, ShapeUtilities.createDiamond(1F));
        //Need help in above to loop through total no of series instead of hard coding to 0

        //This is so that the value of X axis starts from 0 and does not leave any space
        plot.getDomainAxis().setLowerMargin(0.01);
        plot.getDomainAxis().setUpperMargin(0.01);   

        plot.setRenderer(renderer);
    }
}

1 个答案:

答案 0 :(得分:2)

您可以致电:

获取系列总数
jFreeChart.getXYPlot().getDataset().getSeriesCount()

使用此功能修改所有系列应该很简单。

int seriesCount = jFreeChart.getXYPlot().getDataset().getSeriesCount()
for (int i = 0; i < seriesCount; i++) {
    renderer.setSeriesShape(i, ShapeUtilities.createDiamond(1F));
}