在jfree饼图中减少图例和图表之间的空间

时间:2015-10-28 05:10:47

标签: jfreechart pie-chart

我将图例放在左上角,图表和图例之间存在不必要的间隙。 如何减少这个?

饼图及其边框之间有相当大的空间。

public void setPie() {
    RingPlot plot = (RingPlot) this.chart.getPlot();

    plot.setSectionPaint("", WHITE_COLOR);
    plot.setCircular(true);
    plot.setShadowPaint(null);
}

public void setLegend() {
    LegendTitle legend = this.chart.getLegend();
    legend.setVerticalAlignment(VerticalAlignment.TOP);
    legend.setVisible(true);
    legend.setPosition(RectangleEdge.LEFT);

    Rectangle rect = new Rectangle(LEGEND_LENGTH, LEGEND_WIDTH);
    RingPlot plot = (RingPlot) this.chart.getPlot();
    plot.setLegendItemShape((Shape) rect);
}

1 个答案:

答案 0 :(得分:4)

您可以尝试调整LegendTitle周围的边距。类似的东西:

chart.getLegend().setMargin(top, left, bottom, right);

编辑:正如评论中的帖子所示,您可以尝试在给定位置手动绘制图例:

//Print legend at X & Y location 
Rectangle2D r2DD = new Rectangle2D.Double(119, 47, 120, 180);
LegendTitle legend = new LegendTitle(chart.getPlot());
legendTitle.draw(g2,r2DD);

但我不确定如何实现它,因为您需要访问ChartPanel的{​​{1}}。也许通过扩展Graphics2D并覆盖ChartPanel