Chi*_*eri 5 java jasper-reports jfreechart
我正在使用JasperReports为我的 web 应用程序创建折线图。
我已成功将数据集传递给编译报告(在iReport 中创建),并且可以正确查看数据。
但是,我想在边际上做一些定制。
请看图片:

我正在使用在我的 webspps 中定义的自定义类。我可以更改标签的字体大小和旋转,但不知道如何调整边距。
public class LineChartCustomizer implements JRChartCustomizer {
@Override
public void customize(JFreeChart jFreeChart, JRChart jrChart) {
CategoryPlot plot = jFreeChart.getCategoryPlot();
DecimalFormat dfKey = new DecimalFormat("###,###");
StandardCategoryItemLabelGenerator labelGenerator = new StandardCategoryItemLabelGenerator("{2}", dfKey);
LineAndShapeRenderer renderer = new LineAndShapeRenderer();
renderer.setBaseItemLabelsVisible(true);
renderer.setBaseItemLabelGenerator(labelGenerator);
renderer.setBaseItemLabelFont(new java.awt.Font("SansSerif", java.awt.Font.PLAIN, 4));
renderer.setSeriesShape(0, ShapeUtilities.createDiamond(1F));
plot.setRenderer(renderer);
}
}
Run Code Online (Sandbox Code Playgroud)
我认为*您正在寻找ValueAxis#setUpperMargin(double)和CategoryAxis#setLowerMargin(double)。您可以从CategoryAxis和得到和。请注意,边距是轴长度的百分比,而不是像素值。ValueAxisplot.getDomainAxis()plot.getRangeAxis()
* 我对 JasperReports 不熟悉,但你CategoryPlot手上有一个而不是XYPlot. 我本以为你图片中的图表使用了 xy 时间序列。我只用过测试过这个XYPlot,所以我不完全确定它在 a 上的表现如何CategoryPlot。