我正在开发一个解析XML文件的应用程序,收集日期和值,并使用GraphView使用循环遍历的for循环和数据点数组列表绘制此数据。我可以使用图形生成带有日期和值范围的x和y轴,但不绘制任何点。
我可以在Android监视器中看到正在生成数据点,他们只是没有密谋。我的代码一定有问题,但我无法弄清楚。有什么想法吗?
更新:我应该添加我的XML文件在同一日期有多个值(每15分钟收集一次数据)。我的猜测是我需要在数组中平均这些值,以便每个日期只有一个值。这可能是影响GraphView的原因。
公共类GraphActivity扩展了AppCompatActivity {
ReactDOM
答案 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设置进行了一些调整以正确标记轴并且图形大小适合数据,但我得到了它的工作。