有条件地定位标签文本
Position label text on conditional basis
在上面的条形图中,对于灰色条,我希望标签文本(阈值 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
这可以通过覆盖 AbstractCategoryItemRenderer
java class.
的 getPositiveItemLabelPosition
方法来实现
@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);
}
}
在上面的条形图中,对于灰色条,我希望标签文本(阈值 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
这可以通过覆盖 AbstractCategoryItemRenderer
java class.
getPositiveItemLabelPosition
方法来实现
@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);
}
}