我想在散点图上绘制一些数据:x
针对y
,其中系列中的每个点都有point size
和color
。这可能吗?
比如说
int[] x = {1,2,3,4,5};
int[] y = {2,4,6,8,10};
int[] pointSize = {10,20,40,15,25}; //pixels
Color[] colors = {rgb1,rgb2,rgb3,rgb4,rgb5};
我对JFree很新,所以如果你能发布一些完美的示例代码:D
答案 0 :(得分:3)
您可以覆盖XYShapeRenderer#XYShapeRenderer
和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];
}
}
});
我正在使用辅助函数来创建点:
private static Shape CreateCircle(double size){
return new Ellipse2D.Double(-size/2,-size/2,size,size);
}
这将创建一个这样的图表:
您还可以使用Bubble Chart
获取similer结果
这张图片来自JFreeChart文档