You can override XYShapeRenderer#XYShapeRenderer
and XYShapeRenderer#getItemShape
final Shape[] pointSize = {createCircle(10),createCircle(20),createCircle(40),createCircle(15),createCircle(25)}; //pixels
final Color[] colors = {Color.red,Color.yellow,Color.pink,Color.blue,Color.cyan};
plot.setRenderer(new XYShapeRenderer() {
@Override
public Paint getItemPaint(int row, int column) {
try {
return colors[column];
} catch (Exception e) {
return colors[0];
}
}
@Override
public Shape getItemShape(int row, int column) {
try {
return pointSize[column];
} catch (Exception e) {
return pointSize[0];
}
}
});
I'm using a helper function to create the points:
private static Shape CreateCircle(double size){
return new Ellipse2D.Double(-size/2,-size/2,size,size);
}
This will create a chart like this:

You could also get a similer result using a Bubble Chart

THis image is from the JFreeChart documentation