BarChart 设置值轴增量
BarChart set values axis increment
我正在使用 JasperReports 生成带有图表的报告。其中一个是条形图,我想将轴值的增量设置为 20 个单位。
你可以在这个link看到我以前的方法:
这是我的定制器 class:
public class BarChartCustomizer extends JRAbstractChartCustomizer {
@Override
public void customize(JFreeChart jFreeChart, JRChart jrChart) {
CategoryPlot plot = (CategoryPlot) jFreeChart.getPlot();
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
NumberFormat numberFormat = NumberFormat.getNumberInstance();
numberFormat.setMaximumFractionDigits(2);
numberFormat.setMinimumFractionDigits(2);
rangeAxis.setNumberFormatOverride(numberFormat);
BarRenderer barRenderer = (BarRenderer) plot.getRenderer();
barRenderer.setItemMargin(0.0);
rangeAxis.setUpperMargin(0.20);
rangeAxis.setAutoRange(true);
CategoryAxis categoryAxis = plot.getDomainAxis();
categoryAxis.setAxisLineStroke(new BasicStroke(2f));
rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setAxisLineStroke(new BasicStroke(2f));
}
}
我试过 rangeAxis.setMinorTickCount(20);
但没有成功。
像往常一样,最终解决方案将包含在我的 GitHub 存储库中的示例代码中:https://github.com/MichaelKnight/jaspertest.git
试试这个
rangeAxis.setTickUnit(new NumberTickUnit(20));
另请参阅 net.sf.jasperreports.chart.range.axis.tick.interval 属性(记录在 http://jasperreports.sourceforge.net/config.reference.html#net.sf.jasperreports.chart.range.axis.tick.interval),它正是这样做的。
我正在使用 JasperReports 生成带有图表的报告。其中一个是条形图,我想将轴值的增量设置为 20 个单位。
你可以在这个link看到我以前的方法:
这是我的定制器 class:
public class BarChartCustomizer extends JRAbstractChartCustomizer {
@Override
public void customize(JFreeChart jFreeChart, JRChart jrChart) {
CategoryPlot plot = (CategoryPlot) jFreeChart.getPlot();
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
NumberFormat numberFormat = NumberFormat.getNumberInstance();
numberFormat.setMaximumFractionDigits(2);
numberFormat.setMinimumFractionDigits(2);
rangeAxis.setNumberFormatOverride(numberFormat);
BarRenderer barRenderer = (BarRenderer) plot.getRenderer();
barRenderer.setItemMargin(0.0);
rangeAxis.setUpperMargin(0.20);
rangeAxis.setAutoRange(true);
CategoryAxis categoryAxis = plot.getDomainAxis();
categoryAxis.setAxisLineStroke(new BasicStroke(2f));
rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setAxisLineStroke(new BasicStroke(2f));
}
}
我试过 rangeAxis.setMinorTickCount(20);
但没有成功。
像往常一样,最终解决方案将包含在我的 GitHub 存储库中的示例代码中:https://github.com/MichaelKnight/jaspertest.git
试试这个
rangeAxis.setTickUnit(new NumberTickUnit(20));
另请参阅 net.sf.jasperreports.chart.range.axis.tick.interval 属性(记录在 http://jasperreports.sourceforge.net/config.reference.html#net.sf.jasperreports.chart.range.axis.tick.interval),它正是这样做的。