Chcę, aby w czasie rzeczywistym wiele linechart przy użyciu MPAndroidChart.Jak tworzyć wykres liniowy w czasie rzeczywistym?
Nie ma problemu, aby wykres w czasie rzeczywistym wykorzystywać tylko jedno dane. (poniższy kod)
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));
}
}
I nie ma problemu, aby utworzyć wiele wykresów liniowych za pomocą następującego kodu.
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);
}
Jednak nie wiem, jak wykonać wiele wykresów linechart w czasie rzeczywistym.
Jak utworzyć wykres liniowy w czasie rzeczywistym?
można podać przykładowy kod lub przykładowy – Narendra
@Narendra W pierwszym kodem OP, istnieje linia data.addEntry (Nowy wpis (getPressure() set.getEntryCount()), 0); ----- Tutaj wpisz 0 jako 1 w ostatnim argumencie i utwórz zestaw danych o nazwie data1. I wypełnij argumenty, z którymi dane mają być drukowane. Dodanie drugiego wykresu jest podobne do pierwszego wykresu. Jedyną rzeczą jest, aby indeks od 0 do 1. – zwarrior
@zwarrior tak zrobić uniqueIndex do utrzymania każdego wiersza wykresu. – Narendra