私の JFreeChart 時系列プロットでは、凡例の線が細すぎて色を正確に表示できません。別の投稿 [ https://stackoverflow.com/questions/7306901/jfreechart-change-sample-of-colors-in-legend ] は、次のようにレンダラー メソッドをオーバーライドすることを提案しました。
renderer = new XYLineAndShapeRenderer()
{
private static final long serialVersionUID = 1L;
public Shape lookupLegendShape(int series)
{
return new Rectangle(15, 15);
}
};
あなたが私がしたことをするまで、このアプローチはうまくいきます
renderer.setSeriesShapesVisible(i, false);
それをしたら、凡例は線に戻ります。これを回避する方法はありますか?
私が採用した解決策は、TrashGod によって提案されたものに近いもので 、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());
}
};