我显然不理解getSeriesPaint
方法的文档。我有TimeSeries
对象,我想获得用于渲染它的颜色。然而,看起来我似乎陷入困境22。我需要知道系列索引(getIndex
),但要发现我需要知道系列时间段。但是,要查找系列时间段,我需要知道索引。我想做这样的事情:
Color color=(Color) r1.getSeriesPaint(arg0);
其中r1
是XYLineAndShapeRenderer
。在给定arg0
对象的情况下,我对TimeSeries
使用什么?
答案 0 :(得分:2)
由于XYLineAndShapeRenderer
是XYItemRenderer
,因此会调用AbstractRenderer
方法getItemPaint()
,其中"返回用于在绘制数据项时为其着色的绘制。 "请注意"默认实现将控制传递给lookupSeriesPaint()
方法。"从此example开始,以下片段从图表中获取数据集和渲染器。然后列举了图像中看到的红色和蓝色系列颜料:
JFreeChart chart = chartPanel.getChart();
XYPlot plot = (XYPlot) chart.getPlot();
TimeSeriesCollection tsc = (TimeSeriesCollection) plot.getDataset();
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
for (int i = 0; i < tsc.getSeriesCount(); i++) {
System.out.println(renderer.lookupSeriesPaint(i));
}
控制台:
java.awt.Color[r=255,g=85,b=85]
java.awt.Color[r=85,g=85,b=255]
或者,请考虑自定义DrawingSupplier
,提及here。