【发布时间】:2015-05-13 07:33:55
【问题描述】:
我有一个图表,每个类别值都有两个条形图。我们如何删除类别值上的栏之间的空间。不应删除具有不同类别值的条之间的空格。
【问题讨论】:
标签: java jasper-reports jfreechart
我有一个图表,每个类别值都有两个条形图。我们如何删除类别值上的栏之间的空间。不应删除具有不同类别值的条之间的空格。
【问题讨论】:
标签: java jasper-reports jfreechart
我使用 java 定制器处理了这个案例,如下所示:
public class BarChartCustomizerExIm implements JRChartCustomizer{
@Override
public void customize(JFreeChart chart, JRChart jasperChart) {
BarRenderer barRenderer = (BarRenderer)plot.getRenderer();
barRenderer.setItemMargin(0);
}
}
将此类的 jar 放入您的类路径中,并在您的 ireport 的自定义字段中指定类名。
【讨论】:
如下编写自己的 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);
}
}
并将其作为自定义程序类添加到您的图表首选项中。
【讨论】:
renderer.setMaximumBarWidth(0.03); 时,它再次开始显示条之间的空间。