GraphView For循环不绘制数据

时间:2017-11-17 14:11:20

标签: android for-loop android-graphview linegraph

我正在开发一个解析XML文件的应用程序,收集日期和值,并使用GraphView使用循环遍历的for循环和数据点数组列表绘制此数据。我可以使用图形生成带有日期和值范围的x和y轴,但不绘制任何点。

我可以在Android监视器中看到正在生成数据点,他们只是没有密谋。我的代码一定有问题,但我无法弄清楚。有什么想法吗?

更新:我应该添加我的XML文件在同一日期有多个值(每15分钟收集一次数据)。我的猜测是我需要在数组中平均这些值,以便每个日期只有一个值。这可能是影响GraphView的原因。

公共类GraphActivity扩展了AppCompatActivity {

ReactDOM

1 个答案:

答案 0 :(得分:1)

我明白了。我开始循环遍历我的数组并创建没有任何重复的新数组。然后我使用这些数组创建了一个DataPoints数组,并将其添加到图表中:

            for (int j = 0; j < dateOnlyEntrySeries.size() - 1; j++) {
                String stringValue = valueOnlySeries.get(j).value;
                String stringDate = dateOnlyEntrySeries.get(j).date;
                String stringDate2 = dateOnlyEntrySeries.get(j + 1).date;

                finalDate = dateOnlyEntrySeries.get(dateOnlyEntrySeries.size() - 1).date;
                if (!(stringDate.equalsIgnoreCase(stringDate2))) {

                    array3.add(stringDate);
                    array4.add(stringValue);
                    n = n + 1;
                }
            }

            dp = new DataPoint[array3.size()];
            int arraySize = array3.size();

            for (int i = 0; i < array3.size(); i++) {
                Double newDoubleValue = Double.parseDouble(array4.get(i));
                String newStringDate = array3.get(i);

                dp[i] = new DataPoint(new SimpleDateFormat("yyyy-MM-dd").parse(newStringDate), newDoubleValue);
            }

            finalDoubleValue = Double.parseDouble(valueOnlySeries.get(valueOnlySeries.size() - 1).value);

            DataPoint finalDataPoint = new DataPoint(
                    new SimpleDateFormat("yyyy-MM-dd").parse(finalDate), finalDoubleValue);


            series = new LineGraphSeries<>(dp);

            series.appendData(finalDataPoint, true, 30);
            graphView.addSeries(series); 

使用GraphView设置进行了一些调整以正确标记轴并且图形大小适合数据,但我得到了它的工作。