我在iReport中创建了一个堆积条形图。在显示随机数字符后,每个条下的某些标签会被截断。有些标签有一个字母“O ......”其他有6个“Safet ......”。其他人都有“财务”字样。
iReport中是否有属性我可以设置为在每个栏下显示整个标签?与其他文本元素的“Stretch With Overflow”类似?
我在iReport 4.5.1和4.7中得到了相同的行为。
以下是该特定图表的XML。
<stackedBarChart>
<chart>
<reportElement x="0" y="26" width="555" height="257"/>
<chartTitle/>
<chartSubtitle/>
<chartLegend position="Bottom"/>
</chart>
<categoryDataset>
<dataset>
<incrementWhenExpression><![CDATA[$F{Percentage}<100]]></incrementWhenExpression>
<datasetRun subDataset="dsSectionChart">
<datasetParameter name="C_ID">
<datasetParameterExpression><![CDATA[$P{C_ID}]]></datasetParameterExpression>
</datasetParameter>
<datasetParameter name="L_STR">
<datasetParameterExpression><![CDATA[$P{L_STR}]]></datasetParameterExpression>
</datasetParameter>
<datasetParameter name="START_DATE">
<datasetParameterExpression><![CDATA[$P{START_DATE}]]></datasetParameterExpression>
</datasetParameter>
<datasetParameter name="END_DATE">
<datasetParameterExpression><![CDATA[$P{END_DATE}]]></datasetParameterExpression>
</datasetParameter>
</datasetRun>
</dataset>
<categorySeries>
<seriesExpression><![CDATA[$V{PRIORITY_STR}]]></seriesExpression>
<categoryExpression><![CDATA[$F{sectionName}]]></categoryExpression>
<valueExpression><![CDATA[$V{R_COUNT}]]></valueExpression>
<labelExpression><![CDATA[$F{sectionName}]]></labelExpression>
</categorySeries>
</categoryDataset>
<barPlot isShowLabels="false" isShowTickMarks="true">
<plot labelRotation="0.0">
<seriesColor seriesOrder="0" color="#10253F"/>
<seriesColor seriesOrder="1" color="#558ED5"/>
<seriesColor seriesOrder="2" color="#C6D9F1"/>
</plot>
<itemLabel/>
</barPlot>
</stackedBarChart>
答案 0 :(得分:4)
简而言之,不:您可以设置简单属性以确保显示整个标签。在大多数情况下,这实际上是一个JFreeChart问题而不是JasperReports问题,因为它是呈现图表图像的JFreeChart。
通常最简单的解决方案是旋转标签。这给了他们更多的空间。尝试45或90度,看看这是否是一个可接受的解决方案。
还可以编写图表自定义程序来更精确地控制行为。我前段时间写了一篇关于chart customizers的文章,其中我详细介绍了在条形图中处理较长标签的示例。它可能对你有用。
答案 1 :(得分:2)
我是堆叠溢出的新手。我确实尝试了几个选项来在ireport中的图表的类别轴上打印整个标签(完全标签)。我使用以下选项成功完成。
请在图表的图片中使用“类别轴刻度标签旋转”参数。给出一些旋转值,请注意,值以角度给出.jrxml如下。
<categoryAxisFormat labelRotation="45.0"></categoryAxisFormat>
答案 2 :(得分:0)
在Jaspersoft Studio中右键单击图表并显示正确性 - &gt;点击属性窗口中的 Chartplot 标签 - &gt;打开类别Axis刻度线标签字体属性 - &gt;在类别Axis TickLabel Rotation 输入文本中输入您的旋转度。