JFreeChart / JasperReports - 将刻度标签设置为仅在条形图的一个轴上显示
JFreeChart / JasperReports - Setting tick labels to only show on one axis for bar chart
我有一个水平条形图。我想让它只显示域的标签,而不是范围,因为我已经在每个栏的末尾都有标签显示它们的确切值。这是条形图当前的样子:
我想去除范围 (0, 25, 50, 75, 100) 上的刻度标签,同时保留域上的刻度标签。我怎样才能做到这一点而不摆脱两者?我试过了:
public class BarCustomizer implements JRChartCustomizer {
@Override
public void customize(JFreeChart chart, JRChart jasperChart) {
BarRenderer renderer = (BarRenderer) chart.getCategoryPlot().getRenderer();
renderer.setMaximumBarWidth(0.99);
renderer.setItemMargin(-2);
ValueAxis rangeAxis = chart.getCategoryPlot().getRangeAxis();
rangeAxis.setVerticalTickLabels(false);
rangeAxis.setTickLabelsVisible(false);
}
}
但这只会使两个轴上的标签不可见。
我通过为两个轴设置 setTickLabelsVisible 解决了这个问题(即使默认情况下域轴应该显示刻度标签)。似乎只设置一个轴会导致两个轴都设置为 true 或 false(奇怪的错误)。因此,在设置范围轴 setTickLabelsVisible(false) 的同时将域轴设置为 setTickLabelsVisible(true) 解决了我的问题。
我有一个水平条形图。我想让它只显示域的标签,而不是范围,因为我已经在每个栏的末尾都有标签显示它们的确切值。这是条形图当前的样子:
我想去除范围 (0, 25, 50, 75, 100) 上的刻度标签,同时保留域上的刻度标签。我怎样才能做到这一点而不摆脱两者?我试过了:
public class BarCustomizer implements JRChartCustomizer {
@Override
public void customize(JFreeChart chart, JRChart jasperChart) {
BarRenderer renderer = (BarRenderer) chart.getCategoryPlot().getRenderer();
renderer.setMaximumBarWidth(0.99);
renderer.setItemMargin(-2);
ValueAxis rangeAxis = chart.getCategoryPlot().getRangeAxis();
rangeAxis.setVerticalTickLabels(false);
rangeAxis.setTickLabelsVisible(false);
}
}
但这只会使两个轴上的标签不可见。
我通过为两个轴设置 setTickLabelsVisible 解决了这个问题(即使默认情况下域轴应该显示刻度标签)。似乎只设置一个轴会导致两个轴都设置为 true 或 false(奇怪的错误)。因此,在设置范围轴 setTickLabelsVisible(false) 的同时将域轴设置为 setTickLabelsVisible(true) 解决了我的问题。