1

我想在散点图上绘制一些数据:x针对y系列中每个点具有 apoint size和 a 的位置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

4

1 回答 1

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);
}

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

在此处输入图像描述

您还可以使用气泡图获得类似的结果

在此处输入图像描述

这张图片来自 JFreeChart 文档

于 2013-10-23T09:38:30.090 回答