我将图例放在左上角,图表和图例之间存在不必要的间隙。 如何减少这个?
饼图及其边框之间有相当大的空间。
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);
}
答案 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
?