3

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

4

2 回答 2

2

我想出了如何解决这个问题。您必须在 ChartCustomizer 的自定义函数中设置 BasePositiveItemLabelPosition,该函数本身扩展了 JRAbstractChartCustomizer。被覆盖的 costomize 方法有两个参数。在这种情况下,“图表”是第一个 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);
于 2013-02-26T12:21:16.400 回答
0

我假设您使用的是 JFree Chart 库。如果是这种情况,可以选择添加图表定制器类,让您更好地控制图表选项。

查看这篇关于Jasper 中的图表定制器的博客文章我认为这正是您正在寻找的内容,还有第二篇文章显示了一些额外的功能。

于 2013-02-22T17:12:30.243 回答