как построить график по текстовому файлу в java

Нужна ваша помощь. Как можно построить график по точкам, которые соединяются линиями по текстовому файлу. а точнее я этот текстовый файл выгружаю в столбец таблицы, а столбец таблицы записываю в List . Я так понял что надо через moveTo и lineTo. но что нужно указывать в качестве координат не знаю.

Graphics2D g2 = (Graphics2D) gh;
            Dimension d = getSize();
            float gridWidth = d.width * 0.9f, gridHeight =d.height * 0.9f;//размеры области построения графика
            float n = gridHeight / 15;
            float xn = 60, yn = 90;//начальные точки области построения графика
            g2.draw(new Line2D.Double(xn, yn - 50, xn, gridHeight + yn - 50));//ось y
            g2.draw(new Line2D.Double(xn, n * 15 + yn - 50, gridWidth + xn, n * 15 + yn - 50)); //ось x
            g2.drawString("y", xn - 30, yn - 50);
            g2.drawString("x", gridWidth + xn +10, yn + gridHeight - 50);

            final List<Object> listValue1 = getValueFromColumnByRow(0); //№ по порядку
            Integer[] myArray1 = new Integer[listValue1.size()];
            for (int i = 0; i < listValue1.size(); i++) {
                myArray1[i] = (Integer) listValue1.get(i); }
            for (double x = 1; x <= listValue1.size(); x ++) {
                for (Integer myInt1 : myArray1) {
                g2.drawString(myInt1 + " ", 60 + 25 * myInt1, 690);} //подпись горизонтальной оси
                for (int i = 0; i < 21; i++) {
                    int vs = 10500 - i * 500;
                    g2.drawString(vs + "", 20, 50 + 30 * i + 15);} //подпись вертикальной оси
            }
            GeneralPath p = new GeneralPath();
            p.moveTo(xn+90,yn+150);
            for (int x = 1; x< listValue1.size(); x++) {
                final List<Object> listValue = getValueFromColumnByRow(1); //данные
                Integer[] myArray = new Integer[listValue.size()];
                for (int i = 0; i < listValue1.size(); i++) {
                    myArray[i] = (Integer) listValue.get(i);}
                for (Integer myInt : myArray) {
                    int y = myInt;
                    p.lineTo(x * gridWidth, (float) y * (-gridHeight));
                g2.draw(p); } }

Ответы (0 шт):