我需要将条形图的itemLabels旋转大约90°,以便它们具有垂直方向。 itemLabels不是轴上的那些,而是栏上方的那些。我必须这样做,因为否则itemLabels会重叠。我知道有办法防止标签重叠,但我有一个特定的要求,使它们垂直定向。如果有办法请告诉我。
答案 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显示了一些额外的功能。