Tôi muốn tạo nhiều linechart theo thời gian thực bằng cách sử dụng MPAndroidChart.Làm cách nào để tạo biểu đồ nhiều đường thời gian thực?
Không có vấn đề gì khi tạo biểu đồ thời gian thực chỉ sử dụng một dữ liệu. (mã sau)
private void addEntry(int count) {
LineData data = mChart.getData();
if (data != null) {
LineDataSet set = data.getDataSetByIndex(0);
if (set == null) {
set = createSet();
data.addDataSet(set);
}
data.addXValue("");
data.addEntry(new Entry(getPressure(), set.getEntryCount()), 0);
data.setDrawValues(false);
data.setHighlightEnabled(false);
// let the chart know it's data has changed
mChart.notifyDataSetChanged();
// limit the number of visible entries
mChart.setVisibleXRange(0, count);
// move to the latest entry
mChart.moveViewToX(data.getXValCount() - (count + 1));
}
}
Và, không có vấn đề gì khi tạo biểu đồ nhiều đường bằng mã sau.
private void setData(int count, float range) {
ArrayList<String> xValues = new ArrayList<String>();
for (int i = 0 ; i < count ; i++) {
xValues.add((1 + i) + "");
}
ArrayList<LineDataSet> dataSets = new ArrayList<LineDataSet>();
for (int k = 0 ; k < 3 ; k++) {
ArrayList<Entry> yValues = new ArrayList<Entry>();
for (int i = 0 ; i < count ; i++) {
if (k == 0) {
yValues.add(new Entry(getSetPressure(), i));
}
else if (k == 1) {
yValues.add(new Entry(getCurrentPressure(), i));
}
else {
yValues.add(new Entry(getSuctionPressure(), i));
}
}
String s;
String c;
if (k == 0) {
s = "Set Pressure";
c = "#ed1f24";
}
else if (k == 1) {
s = "Current Pressure";
c = "#004bf6";
}
else {
s = "Suction Pressure";
c = "#ffba00";
}
LineDataSet set = new LineDataSet(yValues, s);
set.setAxisDependency(YAxis.AxisDependency.LEFT);
set.setDrawCubic(false);
set.setDrawCircles(false);
set.setCircleColor(Color.parseColor(c));
set.setCircleSize(8f);
set.setCircleColorHole(Color.BLACK);
set.setDrawCircleHole(false);
set.setLineWidth(3f);
set.setColor(Color.parseColor(c));
set.setDrawHorizontalHighlightIndicator(false);
set.setDrawVerticalHighlightIndicator(false);
dataSets.add(set);
}
LineData data = new LineData(xValues, dataSets);
data.setDrawValues(false);
data.setHighlightEnabled(false);
mChart.setData(data);
}
Tuy nhiên, tôi không biết cách tạo nhiều đồ thị linechart thời gian thực.
Tôi làm cách nào để tạo nhiều biểu đồ đường thời gian thực?
bạn có thể cung cấp cho mã mẫu hoặc ví dụ – Narendra
@Narendra Trong mã đầu tiên của OP, có một dòng data.addEntry (Entry mới (getPressure(), set.getEntryCount()), 0); ----- Ở đây, làm cho 0 là 1 trong đối số cuối cùng và làm cho tập dữ liệu được gọi là data1. Và điền vào các đối số với dữ liệu được vẽ. Thêm đồ thị thứ hai tương tự như đồ thị đầu tiên. Chỉ có điều, làm cho chỉ số từ 0 đến 1. – zwarrior
@zwarrior có làm cho uniqueIndex duy trì từng hàng biểu đồ. – Narendra