JFreeChart保证金

时间:2013-08-27 02:35:01

标签: java jasper-reports jfreechart

我正在使用 JasperReports 为我的webapps创建折线图。

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

但是,我想在边缘做一些自定义。

  1. 折线图上显示的值是修剪最高值,因为没有保证金。
  2. X轴标签是在Y轴0值的空白空间之后出现的。我想删除该边距并从非常靠近X&的会合点开始X轴。收率
  3. 请看图片:

    enter image description here

    我正在使用在我的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);
        }
    }
    

1 个答案:

答案 0 :(得分:1)

我认为 * 您正在寻找ValueAxis#setUpperMargin(double)CategoryAxis#setLowerMargin(double)。您可以从CategoryAxisValueAxis获取plot.getDomainAxis()plot.getRangeAxis()。请注意,边距是轴长度的百分比,而不是像素值。

*我对JasperReports并不熟悉,但是你手头有CategoryPlot而不是XYPlot似乎有点奇怪。我本以为你图片中的图表使用了xy时间序列。我只用XYPlot对此进行了测试,因此我不完全确定它与CategoryPlot的行为方式。