Как реализовать диаграмму и график в Java? - PullRequest
1 голос
/ 08 декабря 2010

Я хочу создать чат и график на основе ввода данных в Java. У меня нет представления о том, как реализовать диаграмму и график в Java. пожалуйста, дайте мне некоторое представление о реализации.

Спасибо

Ответы [ 3 ]

4 голосов
/ 08 декабря 2010
0 голосов
/ 05 марта 2011

Если вы хотите реализовать график самостоятельно, сначала получите свои точки x, y в двух массивах xarray[], yarray[].Обычно для реализации изогнутого графика вам нужны точки между точками данных, которые у вас уже есть.Используйте интерполяцию для этого www.webcabcomponents.com имеет бесплатную версию программы интерполяции.Вы просто даете xarray, yarray, any_x и получаете интерполированную точку y для любого x.Вы можете построить кривые с непрерывным внешним видом по коду, например,

[pseudo code]
firstX,firstY =0  //assumed  x=0; y(0)=0 
loop
for x= 0 to panel width;
{ get interpolatedY(x);
  drawLine from (firstX,firstY) to (nextX,nextY);
  //use Graphics.drawLine command
  firstX=nextX; firstY=nextY;
}

Возможно, вам придется установить Scale, если необходимо, и умножить firstX и т. Д. На масштаб.

Для интерполяции эти биты кода будутначать.returnedArray имеет два элемента.Сначала returnedArray[0] является обязательным y.Другой - оценка ошибки (пока пренебрегайте).

import webcab.lib.math.interpolation.Interpolation;  
Interpolation interpol1 = new Interpolation();  
double[] returnedArray = interpol1.interpolateExtrapolatePolynomial(getQArray(),getEArray(),x);
y=returnedArray[0];

Вышеупомянутый метод interpolateExtrapolatePolynomial(getQArray(),getEArray(),x) предназначен для кривых полимиального типа.Если ваши точки данных следуют какому-либо другому классу шаблонов, интерполяция имеет другие методы.Или вы можете реализовать себя, используя численные методы.

Удачного кодирования!

0 голосов
/ 08 декабря 2010

Использование http://www.jfree.org/jfreechart/ Это технически открытый исходный код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...