Jasper 条形图:无法显示标签
Jasper bar chart: unable to show labels
我正在努力使用 Jasper 在我的图表栏的顶部显示值标签。我要生成的内容:
我使用 Jaspersoft Studio,并选中了 "Chart Plot" 选项卡中的 "Show Labels" 框。出于测试目的,我使用某种红色和紫色作为项目标签字体颜色和背景颜色,这在条形图上应该很明显。
我的 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 标签。
我应该怎么做才能显示这些值?
我从头开始创建了一个新的条形图,使用相同的配置一切正常。经过一些挖掘,我发现当我第一次创建初始图表时,我将一个空字符串作为用于标签的表达式,以为它是轴标签(我不想显示值轴的标签).我解决了这个问题,第一个条形图也能正常工作。浪费几天工作的愚蠢方式。
我正在努力使用 Jasper 在我的图表栏的顶部显示值标签。我要生成的内容:
我使用 Jaspersoft Studio,并选中了 "Chart Plot" 选项卡中的 "Show Labels" 框。出于测试目的,我使用某种红色和紫色作为项目标签字体颜色和背景颜色,这在条形图上应该很明显。
我的 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 标签。
我应该怎么做才能显示这些值?
我从头开始创建了一个新的条形图,使用相同的配置一切正常。经过一些挖掘,我发现当我第一次创建初始图表时,我将一个空字符串作为用于标签的表达式,以为它是轴标签(我不想显示值轴的标签).我解决了这个问题,第一个条形图也能正常工作。浪费几天工作的愚蠢方式。