有没有可能在JFreeChart中将图例添加到图中?
我试图在散点图下面的图中添加一个图例,如下所示。 任何人都知道这是可能的吗?
 之前: 
 后: 
扩展StandardXYItemLabelGenerator通常是一种有用的方法,但提供的构造函数就足够了。 对于此生成器, MessageFormat ArgumentIndex值对应于系列名称 , 域和范围 。 
 NumberFormat format = NumberFormat.getNumberInstance(); format.setMaximumFractionDigits(2); // etc. XYItemLabelGenerator generator = new StandardXYItemLabelGenerator("{0} {1} {2}", format, format); renderer.setBaseItemLabelGenerator(generator); renderer.setBaseItemLabelsVisible(true); 
另外,你可以控制个人系列标签
 renderer.setSeriesItemLabelsVisible(true); 
这是我创build的自定义标签生成器:
 public class LegendXYItemLabelGenerator extends StandardXYItemLabelGenerator implements XYItemLabelGenerator, Cloneable, PublicCloneable, Serializable { private LegendItemCollection legendItems; public LegendXYItemLabelGenerator(LegendItemCollection legendItems) { super(); this.legendItems = legendItems; } @Override public String generateLabel(XYDataset dataset, int series, int item) { LegendItem legendItem = legendItems.get(series); return legendItem.getLabel(); } } 
然后我添加了这个代码,除了@ Guilaume的代码:
 renderer.setBaseItemLabelsVisible(true); renderer.setBaseItemLabelGenerator(new LegendXYItemLabelGenerator(plot.getLegendItems())); 
结果如下:

这是在渲染器上进行控制的:
 XYPlot plot = (XYPlot) chart.getPlot(); XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer(); renderer.setBaseItemLabelsVisible(true);