Hi,
Try this:
XYPlot plot = chart.getXYPlot();
XYLineAndShapeRenderer renderer =
( XYLineAndShapeRenderer )plot.getRenderer( 0 );
renderer.setSeriesStroke( 1, new BasicStroke( 2.5f ) );
renderer.setSeriesLinesVisible( 1, true );
renderer.setSeriesShape( 0, new Ellipse2D.Double( 0, 0, 4, 4 ) );
renderer.setSeriesShapesVisible( 0, true );
It seems like I should be able to set the order using (or a variation of):
plot.setSeriesRenderingOrder( SeriesRenderingOrder.FORWARD );
However, it seems that shapes always trump lines, no matter what.
I need to make the line show up in front of the shape.
Any ideas?
JFreeChart 1.0.13.
This solves the problem:
// Trend is series 1
// Scatter is series 0
//
XYPlot plot = chart.getXYPlot();
// Copy the data into a new dataset to control its line independently.
//
plot.setDataset( 1, plot.getDataset( 0 ) );
// Turn off the lines and shapes for the scatter plot in the trend series.
//
XYLineAndShapeRenderer trend = new XYLineAndShapeRenderer();
trend.setSeriesShapesVisible( 0, false );
trend.setSeriesLinesVisible( 0, false );
trend.setSeriesShapesVisible( 1, false );
trend.setSeriesStroke( 1, new BasicStroke( 2.5f ) );
// Change the look of the scatter plot.
//
XYLineAndShapeRenderer scatter =
( XYLineAndShapeRenderer )plot.getRenderer( 0 );
scatter.setSeriesShape( 0, new Ellipse2D.Double( 0, 0, 4, 4 ) );
scatter.setSeriesShapesVisible( 0, true );
plot.setRenderer( 1, trend );
plot.setRenderer( 0, scatter );
plot.setDatasetRenderingOrder( DatasetRenderingOrder.FORWARD );