具有不同点颜色和大小的JFreeChart散点图

时间:2013-10-22 19:39:04

标签: jfreechart

我想在散点图上绘制一些数据:x针对y,其中系列中的每个点都有point sizecolor。这可能吗?

比如说

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

1 个答案:

答案 0 :(得分:3)

您可以覆盖XYShapeRenderer#XYShapeRendererXYShapeRenderer#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);
}

这将创建一个这样的图表:

enter image description here

您还可以使用Bubble Chart

获取similer结果

enter image description here

这张图片来自JFreeChart文档