JJOE64 Графический набор Android LineGraphSeries динамически

Привет, я пытаюсь нарисовать диаграмму с помощью этой библиотеки, но ее записи статичны, например:

LineGraphSeries<DataPoint> series = new LineGraphSeries<DataPoint>(new DataPoint[] {

                        new DataPoint(0, 1),
                        new DataPoint(1, 5),
                        new DataPoint(2, 3),
                        new DataPoint(3, 2),
                        new DataPoint(4, 6)
                });
                graph.addSeries(series);

Как я могу исправить это, которое принимает ex. элементы представления списка, созданные во время выполнения? В основном я хочу что-то вроде этого:

for (int i = 0; i < list.size(); i++) {
LineGraphSeries<DataPoint> series = new LineGraphSeries<DataPoint>(new DataPoint[] {

                        new DataPoint(i, list.getElement()),
});
}

person mesopotamia    schedule 13.04.2016    source источник


Ответы (1)


Попробуйте что-то вроде этого:

DataPoint[] dataPoints = new DataPoint[list.size()]; // declare an array of DataPoint objects with the same size as your list
for (int i = 0; i < list.size(); i++) {
    // add new DataPoint object to the array for each of your list entries
    dataPoints[i] = new DataPoint(i, list.getElement()); // not sure but I think the second argument should be of type double
}

LineGraphSeries<DataPoint> series = new LineGraphSeries<DataPoint>(dataPoints); // This one should be obvious right? :)
person Slobodan Antonijević    schedule 13.04.2016
comment
это работает большое спасибо. Еще один вопрос, кажется, ось x основана на i. Как я могу заменить его со временем? У меня есть список, который завершен с некоторым значением и значением времени. Я хочу, чтобы ось y была значением (все в порядке), а ось x — временем, как я могу это устроить? - person mesopotamia; 13.04.2016
comment
StaticLabelsFormatter staticLabelsFormatter = новый StaticLabelsFormatter (yourGraphView); staticLabelsFormatter.setHorizontalLabels (новая строка [] {time1, time2, time3 и т. д.}); yourGraphView.getGridLabelRenderer().setLabelFormatter(staticLabelsFormatter); Например, вы можете поиграть с этим или проверить здесь ссылка - person Slobodan Antonijević; 13.04.2016
comment
если вы хотите изменить данные, взгляните на методы appendData и resetData в объекте Series. - person appsthatmatter; 22.07.2016
comment
Прошло 3 месяца с тех пор, как вы ответили, но спасибо! Работал над этим 5 часов до твоего ответа! - person AndroidDev21921; 30.11.2016
comment
Что это за список, который вы назвали как list.size()? - person Bay; 22.09.2019
comment
@Bay Любой список входных данных, которые вы объявляете или читаете откуда угодно, может быть, список точек (двойных значений). Это также может быть массив значений, что угодно, что можно повторить. - person Slobodan Antonijević; 25.09.2019