Построить точечный график

288
11 июня 2017, 17:12

Какой самый простой способ построить точечный график при помощи Java?

Есть два массива данных, разделяю каждый из них на два для получения координат

//получение координат для построения графика
        double[] Xwords = new double[words.length];
        double[] Ywords = new double[words.length];
        //разделяем массив слов на два массива с координатами
        for (int i=0; i<words.length; i++){
                Xwords[i] = words[i][0];
                Ywords[i] = words[i][1];
        } 
        double[] Xdocs = new double[docs[0].length];
        double[] Ydocs = new double[docs[0].length];
        //разделяем массив термов на два массива с координатами
        for (int i=0; i<docs[0].length; i++){
                Xdocs[i] = docs[0][i];
                Ydocs[i] = docs[1][i];
        } 

Какая библиотека позволит в пару строчек загнать эти данные в метод и получить обычный точечный график?

Answer 1

Если использовать стандартный Java2D, то код, рисующий точечный график, может выглядеть, например, так:

public void drawDiagram(Graphics g, double[] x, double y[], double scaling, int height, Color color) {
  int lastX = 0, lastY = 0;
  g.setColor(color);
  for(int i = 0; i < x.length; i++) {
   g.drawLine((int)(lastX * scaling), height - (int)(lastY * scaling),
           height - (int)(x[i] * scaling), (int)(y[i] * scaling));
   lastX = (int)x[i];
   lastY = (int)y[i];
  }
}

Где:

  • g - графический контекст холста или изображения.
  • x - массив с координатами x.
  • y - массив с координатами y.
  • scaling - множитель масштабирования.
  • height - высота панели для рисования (также можно взять максимальную координату y).
  • color - цвет линии.
Answer 2

Использовала библиотеку JFreeChart, здесь хороший пример

Answer 3

На Canvas рисовать. Взять SurfaceView и в методе OnDraw() отрисовать что нужно.

READ ALSO
Создать элемент листа с картинкой и именем

Создать элемент листа с картинкой и именем

Есть окно приложение которое содержит листНужно, чтобы каждый элемент листа отображался как песня в плеере

280
EOFException в Клиент-Сервере зависает 2-й клиент Java

EOFException в Клиент-Сервере зависает 2-й клиент Java

Здравствуйте! Пишу общий чатПри каждом подключении Сервер создает новый поток, там проинициализированы:

377
how does a ball object draw itself onto a panel in a different class? [требует правки]

how does a ball object draw itself onto a panel in a different class? [требует правки]

Как объект шара нарисовывается на панели в другом классе?

333
Эффективные ли побитовые операции в Java?

Эффективные ли побитовые операции в Java?

Всем привет, Возник вопрос по битовым операциям в JavaЕсли брать нативные языки на подобие "с++" или "С" то там понятен выиграш в производительности...

313