私は、XMLファイルを解析し、日付と値を収集し、forループとデータポイントの配列リストを使用してGraphViewでこのデータをプロットするアプリケーションに取り組んでいます。私は日付と値の範囲でx軸とy軸を生成するグラフを得ることができますが、点はプロットされません。GraphView forループプロットデータなし
Androidモニターではデータポイントが生成されていることがわかりますが、プロットしていないだけです。コードに何か間違っているはずですが、わかりません。何か案は?
更新:XMLファイルに同じ日付の複数の値があることを追加する必要があります(データは15分ごとに収集されます)。私の推測では、配列内のこれらの値を平均して日付ごとに1つの値しか持たないようにする必要があるということです。これは、GraphViewに影響を与える可能性があります。
パブリッククラスGraphActivityは、私はそれを考え出したAppCompatActivity {
GraphView graphView;
LineGraphSeries<DataPoint> series;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_graph);
graphView = (GraphView) findViewById(R.id.graph);
try {
InputStream is = GraphActivity.this.getResources()
.getAssets().open("smallmonth.xml");
ArrayList<GraphDateEntry> dateOnlyEntrySeries = new GraphDateParsing2().parse(is);
InputStream is1 = GraphActivity.this.getResources()
.getAssets().open("smallmonth.xml");
ArrayList<GraphValueEntry> valueOnlySeries = new GraphValueParsing().parse(is1);
for (int i = 0; i < dateOnlyEntrySeries.size(); i++) {
Double value = Double.parseDouble(valueOnlySeries.get(i).value);
String stringDate = dateOnlyEntrySeries.get(i).date;
DataPoint dateAndValue = new DataPoint(new SimpleDateFormat("yyyy-MM-dd").parse(stringDate), value);
series = new LineGraphSeries<>();
series.appendData(dateAndValue, true, dateOnlyEntrySeries.size());
}
graphView.addSeries(series);
series.setColor(Color.BLACK);
series.setThickness(8);
graphView.getGridLabelRenderer().setLabelFormatter(new DefaultLabelFormatter() {
@Override
public String formatLabel(double value, boolean isValueX) {
if (isValueX) {
Log.d("formatLabel: ", sdf.format(new Date((long) value)));
return sdf.format(new Date((long) value));
} else {
return super.formatLabel(value, isValueX);
}
}
});
} catch (IOException ie) {
ie.printStackTrace();
} catch (ParseException pe) {
pe.printStackTrace();
}
}