图例标签之间的JFreeChart差距

时间:2014-03-06 20:59:11

标签: java swing jfreechart

我一直在使用JFreeChart来绘制一些系列,但我怀疑与图例中标签之间的空格有关。

有谁知道如何在传说之间设置空格?例如,现在:

No space between legends

这就是我希望它看起来像

的样子

space between legends

我将非常感谢你的帮助。

2 个答案:

答案 0 :(得分:4)

您可以在LegendTitle类中使用setItemLabelPadding()方法。

LegendTitle legend = chart.getLegend();
legend.setItemLabelPadding(new RectangleInsets(2, 2, 2, 30));

此方法的唯一问题是它还会在图例的每一行中的最后一项之后留下空格。

如果您不介意更复杂,可以删除默认图例并创建一个新图例,其中包含为布局指定的几个参数:

chart.removeLegend();
FlowArrangement hlayout = new FlowArrangement(
        HorizontalAlignment.CENTER, VerticalAlignment.CENTER, 20, 2);
LegendTitle legend = new LegendTitle(r, hlayout, new ColumnArrangement());
legend.setPosition(RectangleEdge.BOTTOM);
chart.addLegend(legend);

当图例位于图表的顶部或底部时,图例需要水平布局;当图例位于图表的左侧或右侧时,图例需要垂直布局。这里我们只定制了水平布局,指定了项目应该具有流动布局,在每个项目之间以20的间隙为中心,如果是包裹线条,则在线条之间间隔为2。我认为这会得到你要求的结果。

答案 1 :(得分:-2)

只需转到代码中设置图例项目的位置,然后将"2012"更改为

"2012 "