JFreeChart图例显示

在我的JFreeChart时间序列图中,我发现图例线条变细以准确查看颜色。另一篇文章jfreechart-

更改图例中的颜色示例 ]建议重写渲染器方法,如下所示:

renderer = new XYLineAndShapeRenderer()

{

private static final long serialVersionUID = 1L;

public Shape lookupLegendShape(int series)

{

return new Rectangle(15, 15);

}

};

这种方法行之有效,直到你做我所做的

renderer.setSeriesShapesVisible(i, false);

一旦完成,图例就会恢复为一行。有什么办法解决吗?

我覆盖了getLegendItem()方法,将图例形状强制为所需的框。

    renderer = new XYLineAndShapeRenderer()

{

private static final long serialVersionUID = 1L;

public LegendItem getLegendItem(int datasetIndex, int series)

{

LegendItem legend = super.getLegendItem(datasetIndex, series);

return new LegendItem(legend.getLabel(), legend.getDescription(), legend.getToolTipText(), legend.getURLText(), Plot.DEFAULT_LEGEND_ITEM_BOX, legend.getFillPaint());

}

};

回答:

您将不得不重写getLegendItem()以获取所需LegendItem的渲染器创建的渲染器。

附录:这是一个简单的示例,可以帮助您入门。

XYPlot plot = (XYPlot) chart.getPlot();

plot.setRenderer(new MyRenderer());

...

private static class MyRenderer extends XYLineAndShapeRenderer {

@Override

public LegendItem getLegendItem(int dataset, int series) {

LegendItem legendItem = super.getLegendItem(dataset, series);

System.out.println(dataset + " " + series + " " + legendItem.getShape());

// modify legendItem here

return legendItem;

}

}

以上是 JFreeChart图例显示 的全部内容, 来源链接: utcz.com/qa/426660.html

回到顶部