我在 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);
}
}
答案 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));
}