我已经让JFreeChart中的值标签能够出现在条形图的顶部。然而,如果标签在柱形内部会看起来更好。我该如何实现这一点呢?下面的图片展示了我希望图表呈现的效果。
我使用了以下代码使其工作:
StackedBarRenderer renderer = new StackedBarRenderer(false);
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setBaseItemLabelsVisible(true);
chart.getCategoryPlot().setRenderer(renderer);`
只需在您的CategoryItemLabelGenerator
中指定所需的ItemLabelPosition
。这里展示了一个示例,BarChartDemo3
。
您可以使用ItemLabelPosition,在此处查看文档。
renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,TextAnchor.TOP_CENTER ))
输出:
使用ItemLabelPosition来修正位置。
CategoryPlot plot = chart.getCategoryPlot();
CategoryItemRenderer renderer = plot.getRenderer();
CategoryItemLabelGenerator generator = new StandardCategoryItemLabelGenerator("{2}", NumberFormat.getInstance());
renderer.setItemLabelGenerator(generator);
renderer.setItemLabelFont(new Font("SansSerif", Font.PLAIN, 12)); //just font change optional
renderer.setItemLabelsVisible(true);
renderer.setPositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER, TextAnchor.CENTER, - 0 / 2));
它将在您的进度条中央显示您的价值。您可以根据自己的要求修改位置。
AbstractRenderer
中默认的ItemLabelPosition
实例。 - trashgod