JFreeChart / JasperReports-将刻度标签设置为仅在条形图的一个轴上显示

问题描述 投票:0回答:1

我有一个水平条形图。我想这样做的原因是,我只显示域的标签,而不显示范围,因为我已经在每个小节的末尾显示了其确切值的标签。这是条形图当前的样子:

enter image description here

我想删除范围(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);
    }   
}

但是这只会使两个轴上的标签都不可见。

java jasper-reports jfreechart
1个回答
0
投票

我通过为两个轴都设置setTickLabelsVisible解决了这个问题(即使默认情况下,域轴也应显示刻度标签)。似乎只设置一个轴会导致两个轴都设置为true或false(奇怪的错误)。因此,在将范围轴设置为setTickLabelsVisible(false)的同时将域轴设置为setTickLabelsVisible(true)解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.