获取TimeSeries的指定画图

时间:2017-09-27 13:00:02

标签: java jfreechart

我显然不理解getSeriesPaint方法的文档。我有TimeSeries对象,我想获得用于渲染它的颜色。然而,看起来我似乎陷入困境22。我需要知道系列索引(getIndex),但要发现我需要知道系列时间段。但是,要查找系列时间段,我需要知道索引。我想做这样的事情:

Color color=(Color) r1.getSeriesPaint(arg0);

其中r1XYLineAndShapeRenderer。在给定arg0对象的情况下,我对TimeSeries使用什么?

1 个答案:

答案 0 :(得分:2)

由于XYLineAndShapeRendererXYItemRenderer,因此会调用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]

image

或者,请考虑自定义DrawingSupplier,提及here