【问题标题】:Jasper bar chart: unable to show labelsJasper 条形图:无法显示标签
【发布时间】:2018-08-08 13:12:13
【问题描述】:

我正在努力使用 Jasper 在图表的条形顶部显示值标签。我要生成的内容:

我使用 Jaspersoft Studio,并检查了“图表绘图”选项卡中的“显示标签”框。出于测试目的,我为项目标签字体颜色和背景颜色使用了某种红色和紫色,这在条形图上应该很明显。

我的 jrxml 文件如下所示:

        <barPlot isShowLabels="true" isShowTickMarks="false">
            <plot backcolor="#FFFFFF" labelRotation="0.0">
                <seriesColor seriesOrder="0" color="#6D74BC"/>
            </plot>
            <itemLabel color="#E86841" backgroundColor="#C429B5">
                <font fontName="Arial" size="25" isBold="true" isItalic="true" isUnderline="true" isStrikeThrough="true"/>
            </itemLabel>
            <categoryAxisFormat labelRotation="0.0">
                <axisFormat labelColor="#000000" tickLabelColor="#6D74BC" verticalTickLabels="true" axisLineColor="#6D74BC">
                    <labelFont>
                        <font fontName="Arial" size="8"/>
                    </labelFont>
                    <tickLabelFont>
                        <font fontName="Arial" size="8"/>
                    </tickLabelFont>
                </axisFormat>
            </categoryAxisFormat>
            <valueAxisLabelExpression><![CDATA[$P{unitFact}]]></valueAxisLabelExpression>
            <valueAxisFormat>
                <axisFormat labelColor="#6D74BC" tickLabelColor="#6D74BC" verticalTickLabels="false" axisLineColor="#6D74BC">
                    <labelFont>
                        <font fontName="Arial" size="8"/>
                    </labelFont>
                    <tickLabelFont>
                        <font fontName="Arial" size="8"/>
                    </tickLabelFont>
                </axisFormat>
            </valueAxisFormat>
        </barPlot>

我还尝试使用定制器,基于一些 SO 问题:

@Override
public void customize(JFreeChart jFreeChart, JRChart jrChart) {
    CategoryPlot plot = (CategoryPlot)jFreeChart.getPlot();
    plot.getRenderer()
        .setBasePositiveItemLabelPosition(new ItemLabelPosition(
            ItemLabelAnchor.OUTSIDE12,
            TextAnchor.BOTTOM_CENTER));
}

我无法让它工作,我有上面的条形图但没有 110/760 标签。

我应该怎么做才能显示这些值?

【问题讨论】:

  • 你在哪里设置你的自定义方法?,我只使用 jrxml 部分。谢谢
  • @AlbertoAcuña 自定义方法位于实现JRChartCustomizer 的类中。已经有一段时间了,所以我不知道 Jasper 究竟是如何使用这个类的,但你应该查看关于图表定制器的文档,或者如果你需要更多帮助,请提出你自己的问题。

标签: jasper-reports bar-chart jfreechart


【解决方案1】:

我从头开始创建了一个新的条形图,并且在相同的配置下一切正常。经过一番挖掘,我发现当我第一次创建初始图表时,我将一个空白字符串作为用于标签的表达式,认为它是轴标签(我不希望显示值轴标签) )。我解决了这个问题,第一个条形图也能正常工作。浪费几天工作的愚蠢方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多