在JFreeChart条形图中垂直对齐数据值

时间:2017-02-15 21:56:21

标签: java jfreechart

我在JFreeChart条形图中的条形图上显示了值。如果有很多条形,如果标签是水平的,则值会变得过于拥挤。我需要垂直显示值。我试过以下选项,但它们不起作用:

ItemLabelPosition itemLabelPositionTwo=new ItemLabelPosition(
    ItemLabelAnchor.OUTSIDE1, TextAnchor.BASELINE_RIGHT,TextAnchor.BASELINE_RIGHT,+90.0);

ItemLabelPosition itemLabelPositionTwo=new ItemLabelPosition(
    ItemLabelAnchor.OUTSIDE1, TextAnchor.BASELINE_RIGHT,TextAnchor.BASELINE_RIGHT,+45.0);

ItemLabelPosition itemLabelPositionTwo=new ItemLabelPosition(
    ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_RIGHT,TextAnchor.BASELINE_RIGHT,+45.0);

对此非常感谢。

enter image description here

我尝试使用Radians及以下选项。我能够旋转的最大值如下所示

ItemLabelPosition itemLabelPositionTwo=new ItemLabelPosition(
        ItemLabelAnchor.OUTSIDE6, TextAnchor.BASELINE_RIGHT,TextAnchor.BASELINE_RIGHT,-Math.PI/2);

    ItemLabelPosition itemLabelPositionTwo=new ItemLabelPosition(
        ItemLabelAnchor.OUTSIDE7, TextAnchor.BASELINE_RIGHT,TextAnchor.BASELINE_RIGHT,-Math.PI*2);
 ItemLabelPosition itemLabelPositionTwo=new ItemLabelPosition(
        ItemLabelAnchor.OUTSIDE8, TextAnchor.BASELINE_RIGHT,TextAnchor.BASELINE_RIGHT,Math.PI/2);

    ItemLabelPosition itemLabelPositionTwo=new ItemLabelPosition(
        ItemLabelAnchor.OUTSIDE9, TextAnchor.BASELINE_RIGHT,TextAnchor.BASELINE_RIGHT,+270.0);
 ItemLabelPosition itemLabelPositionTwo=new ItemLabelPosition(
        ItemLabelAnchor.OUTSIDE10, TextAnchor.BASELINE_RIGHT,TextAnchor.BASELINE_RIGHT,+360.0);

    ItemLabelPosition itemLabelPositionTwo=new ItemLabelPosition(
        ItemLabelAnchor.OUTSIDE1, TextAnchor.BASELINE_RIGHT,TextAnchor.BASELINE_RIGHT,+Math.PI/2);

enter image description here

2 个答案:

答案 0 :(得分:2)

相关的ItemLabelPosition构造函数需要 radians中的angle ;你可能想要这样的东西:

ItemLabelPosition itemlabelposition = new ItemLabelPosition(
    ItemLabelAnchor.CENTER, TextAnchor.CENTER, TextAnchor.CENTER, -Math.PI / 2);

bar chart

答案 1 :(得分:0)

将度数转换为Radian,并将转换后的值作为参数(角度)传递给ItemLabelPosition

ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,TextAnchor.BASELINE_CENTER,TextAnchor.BASELINE_CENTER,-1.5708); - 这里1.5708(弧度)是90°