有条件地定位标签文本

时间:2015-03-05 16:10:18

标签: jfreechart

enter image description here

在上面的条形图中,对于灰色条,我希望标签文本(阈值50%)显示在灰色条内。目前由于以下代码而在外面显示

renderer.setBaseItemLabelPaint(Color.red);
renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(
                    ItemLabelAnchor.OUTSIDE3, TextAnchor.CENTER_LEFT,
                    TextAnchor.CENTER, 0.0));

如何将上述条件仅应用于第二个红色条和&不要去其他酒吧

这是我的数据集

cat Category       Value
0                  0.000000
1   You 10%        0.100000
2   Threshold 50%  0.500000

1 个答案:

答案 0 :(得分:0)

这可以通过覆盖getPositiveItemLabelPosition java class的AbstractCategoryItemRenderer方法来实现。

@Override
    public ItemLabelPosition getPositiveItemLabelPosition(int row,
            int column) {
        CategoryDataset dataset = getPlot().getDataset();
        double value = dataset.getValue(row, column).doubleValue();
        if (value < 0.15) {
            return new ItemLabelPosition(ItemLabelAnchor.OUTSIDE3,
                    TextAnchor.CENTER_LEFT, TextAnchor.CENTER, 0.0);
        } else {
            return new ItemLabelPosition(ItemLabelAnchor.INSIDE3,
                    TextAnchor.CENTER_RIGHT, TextAnchor.CENTER, 0.0);
        }

    }