Java JFreeChart页边距

Java JFreeChart页边距,java,jasper-reports,jfreechart,Java,Jasper Reports,Jfreechart,我正在使用JasperReports为我的Web应用程序创建折线图 我已成功地将数据集传递到已编译的报表(在iReport中创建),并且可以正确地查看数据 然而,我想做一些定制的边缘 折线图上显示的值为最高值,因为没有边距 X轴标签位于Y轴0值的几个空白之后。我想去掉这个边距,从非常接近X&Y交点的位置开始X轴 请看图片: 我使用的自定义类是在我的WebPP中定义的。我可以改变字体大小和标签的旋转,但不知道如何调整边距 public class LineChartCustomizer impl

我正在使用JasperReports为我的Web应用程序创建折线图

我已成功地将数据集传递到已编译的报表(在iReport中创建),并且可以正确地查看数据

然而,我想做一些定制的边缘

  • 折线图上显示的值为最高值,因为没有边距
  • X轴标签位于Y轴0值的几个空白之后。我想去掉这个边距,从非常接近X&Y交点的位置开始X轴
  • 请看图片:

    我使用的自定义类是在我的WebPP中定义的。我可以改变字体大小和标签的旋转,但不知道如何调整边距

    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);
        }
    }
    
    我想,你在寻找和。您可以从
    plot.getDomainAxis()
    plot.getRangeAxis()
    获取
    CategoryAxis
    ValueAxis
    。请注意,边距是轴长度的百分比,而不是像素值


    *我对JasperReports不太熟悉,但与
    XYPlot
    相反,您手头有一个
    CategoryPlot
    似乎有点奇怪。我本以为你照片中的图表使用的是xy时间序列。我只使用
    XYPlot
    测试过这一点,所以我不完全确定它在
    CategoryPlot

    中的表现。谢谢。