как пометить специальные точки данных в JChart2D? - PullRequest
1 голос
/ 07 сентября 2011

В JChart2D точки из серии могут быть нанесены с помощью маленьких кружков или линии, проведенной через точки. Мне нужно обратить внимание пользователя на определенные конкретные моменты.

Как бы я пометил случайную точку закрашенными кружками или другим символом.

Вертикальный стержневой художник, по-видимому, меняет весь график на вертикальный столбчатый график (в той точке, в которой он появляется, а также "задним числом" для более старых точек). Я не хочу этого. Мне просто нужно , чтобы одна точка выглядела особенной , например, точка в X = 5.

    Chart2D chart = new Chart2D();
    ITrace2D myTrace = new Trace2DLtd(100); 
    myTrace.setColor(Color.RED);
    myTrace.setTracePainter(new TracePainterDisc()); // circle; not filled

    chart.addTrace(myTrace);

    JFrame frame = new JFrame(Constants.graphTitle);
    frame.getContentPane().add(chart);

    frame.setSize(200, 200);
    frame.addWindowListener(
        new WindowAdapter(){
          public void windowClosing(WindowEvent e){
              System.exit(0);
          }
        }
      );
    frame.setVisible(true);

    List<Point> list = Helper.makeList();
    for (Point p: list)
    {
        if (p.x != 5)
            myTrace.addPoint(p.x, p.y);
        else
        {
            // MAKE THIS POINT LOOK DIFFERENT, BUT HOW?
            myTrace.addPoint(p.x, p.y);
        }
    }
  }
}

1 Ответ

1 голос
/ 08 сентября 2011

Заменить соответствующий код следующим:

PointPainterDisc icon = new PointPainterDisc(); 
icon.setDiscSize(20); // make it bigger than the others
icon.setColorFill(Color.BLUE); // choose a color not used by the others
TracePoint2D point = new TracePoint2D(p.x, p.y);
point.addAdditionalPointPainter(icon);
myTrace.addPoint(point);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...