如何在碧玉报告的条形图中将itemLabels旋转到条形图上方?

时间:2013-02-22 12:16:37

标签: jasper-reports label bar-chart

我需要将条形图的itemLabels旋转大约90°,以便它们具有垂直方向。 itemLabels不是轴上的那些,而是栏上方的那些。我必须这样做,因为否则itemLabels会重叠。我知道有办法防止标签重叠,但我有一个特定的要求,使它们垂直定向。如果有办法请告诉我。

2 个答案:

答案 0 :(得分:2)

我想出了如何解决问题。您必须在ChartCustomizer的customize函数中设置BasePositiveItemLabelPosition,它自己扩展了JRAbstractChartCustomizer。 重写的costomize方法有两个参数。在这种情况下,“chart”是第一个是JFreeChart的。您必须从图表中获取正确的渲染器,在本例中为CategoryPlotRenderer。渲染器具有设置BasePositiveItemLabelPosition的功能,您可以使用该功能定义ItemLabels的位置以及它们的旋转方式(-Math.PI / 2 - >逆时针旋转90°)。

CategoryItemRenderer renderer = chart.getCategoryPlot().getRenderer();
    ItemLabelPosition itemLabelPosition = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.CENTER_LEFT,
            TextAnchor.CENTER_LEFT, -Math.PI / 2);
    renderer.setBasePositiveItemLabelPosition(itemLabelPosition);

答案 1 :(得分:0)

我将假设您正在使用JFree图表库。如果是这种情况,可以选择添加图表自定义程序类,以便更好地控制图表选项。

查看关于Chart Customizers in Jasper的博文,我认为这正是您所寻找的,second post显示了一些额外的功能。