【问题标题】:How to remove space betwwen bars on a category in iReport?如何在 iReport 中删除类别上的条之间的空间?
【发布时间】:2015-05-13 07:33:55
【问题描述】:

我有一个图表,每个类别值都有两个条形图。我们如何删除类别值上的栏之间的空间。不应删除具有不同类别值的条之间的空格。

【问题讨论】:

    标签: java jasper-reports jfreechart


    【解决方案1】:

    我使用 java 定制器处理了这个案例,如下所示:

    public class BarChartCustomizerExIm implements JRChartCustomizer{
    
        @Override
        public void customize(JFreeChart chart, JRChart jasperChart) {
    
              BarRenderer barRenderer = (BarRenderer)plot.getRenderer();
              barRenderer.setItemMargin(0);
       }
    

    }

    将此类的 jar 放入您的类路径中,并在您的 ireport 的自定义字段中指定类名。

    【讨论】:

      【解决方案2】:

      如下编写自己的 ChartCustomizer:

      public class CustomizeBarChart extends JRAbstractChartCustomizer {
      
          /**
           * Customizer for BarChart.
           *
           * @param chart the chart
           * @param jasperChart the jasperChart
           *
           * @see net.sf.jasperreports.engine.JRChartCustomizer#customize(org.jfree.chart.JFreeChart, net.sf.jasperreports.engine.JRChart)
           */
          public void customize(JFreeChart chart, JRChart jasperChart) {
      
              CategoryPlot categoryPlot = chart.getCategoryPlot();
              BarRenderer renderer = (BarRenderer) categoryPlot.getRenderer();
      
              //Spaces between bars
              renderer.setItemMargin(0.01);
          }
      }
      

      并将其作为自定义程序类添加到您的图表首选项中。

      【讨论】:

      • 这将设置所有条之间的空间。但我想删除类别值栏之间的空格。对于一个类别值,我有两个条形图。
      • 它减少了条之间的空间,尝试设置 0.00 而不是 0.01
      • 当我在类中使用此代码renderer.setMaximumBarWidth(0.03); 时,它再次开始显示条之间的空间。
      • 你有什么解决办法吗?
      • 我不知道。也看看这个答案:stackoverflow.com/a/16738907/4580058
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-15
      相关资源
      最近更新 更多