在我的JFreeChart時間序列圖我找到傳說線薄準確地看到的顏色。另一篇文章[jfreechart - change sample of colors in legend] 建議重寫渲染方法如下:JFreeChart的傳說顯示
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());
}
};
我可能在這裏有點慢,但你能給我一個線索如何做到這一點?我很樂意簡單地用Plot.DEFAULT_LEGEND_ITEM_BOX替換圖例圖形,但我不確定如何保持圖例信息的其餘部分與原始圖形一致。我是否只需獲取所有屬性並將它們設置爲新的圖例? –
@RichardB:我已經概述了上面的方法。 – trashgod
謝謝。我稍微修改了您的方法(請參閱上文) –