MPAndroidChart и несколько строк на одном графикеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 MPAndroidChart и несколько строк на одном графике

Сообщение Anonymous »

это один из моих первых проектов с Java и Android Studio.

Я использую MPAndroidChart для создания графика с линией со случайными данными. Все в порядке, но я не могу понять, как добавить 2 или 3 линии на один и тот же график.

Может кто-нибудь посоветовать мне или показать путь? Я просто хочу отобразить 2–3 строки разными цветами.

Спасибо!

private RelativeLayout relativeLayout;
private LineChart mChart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_graph);
relativeLayout = findViewById(R.id.relativeLayout);

// create line chart
mChart = new LineChart(this);
//add to layout
relativeLayout.addView(mChart);
//customize line chart
//mChart.setNoDataTextDescription("");
mChart.setNoDataText("No data for the moment");

//enable value highlighting
mChart.setHighlightEnabled(true);
//enable touch
mChart.setTouchEnabled(true);
//we want also scaling and dragging
mChart.setDragEnabled(true);
mChart.setScaleEnabled(true);
mChart.setDrawGridBackground(false);

//enable pinch zoom to avoid scaling x and y axis separately

mChart.setPinchZoom(true);

//alternative backgroundColor
mChart.setBackgroundColor(Color.BLACK);

//now , we work on data
LineData data = new LineData();
data.setValueTextColor(Color.WHITE);

// add data to line chart
mChart.setData(data);

// get legend object
Legend l = mChart.getLegend();

//customize legend
l.setForm(Legend.LegendForm.LINE);
l.setTextColor(Color.WHITE);

XAxis x1 = mChart.getXAxis();
x1.setTextColor(Color.WHITE);
x1.setDrawGridLines(false);
x1.setAvoidFirstLastClipping(true);

YAxis y1 = mChart.getAxisLeft();
y1.setStartAtZero(false);
y1.setTextColor(Color.WHITE);
y1.setAxisMaxValue(50f);
y1.setAxisMinValue(-50f);
y1.setDrawGridLines(false);

YAxis y12 = mChart.getAxisRight();
y12.setEnabled(false);

}

@Override
protected void onPostResume() {
super.onPostResume();
// new, we're going to simulate real time data addition

new Thread(new Runnable() {
@Override
public void run() {
//add 100 entries
for (int i = 0; i < 100; i++) {
runOnUiThread(new Runnable() {
@Override
public void run() {
addEntry();
}
});
// pause between adds
try {
Thread.sleep(60);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();

}

//We need to create method to add entry to the line chart
private void addEntry(){

LineData data = mChart.getData();

if (data != null) {
LineDataSet set = data.getDataSetByIndex(0);

if (set == null) {
//creation if null
set = createSet();
data.addDataSet(set);
}
// add a new random value
data.addXValue("");
data.addEntry(new Entry((float)(Math.random())*100f-50f,set.getEntryCount()),0);

//notify chart data have changed
mChart.notifyDataSetChanged();
// limit number if visible entreies
mChart.setVisibleXRange(6);
//scroll to the last entry
mChart.moveViewToX(data.getXValCount()-7);
}
}
private LineDataSet createSet() {
LineDataSet set = new LineDataSet(null,"Accelerometer X [m/s2]");
set.setDrawCubic(true);
set.setCubicIntensity(0.2f);
set.setAxisDependency(YAxis.AxisDependency.LEFT);
set.setColor(ColorTemplate.getHoloBlue());
set.setCircleColor(ColorTemplate.getHoloBlue());
set.setLineWidth(2f);
set.setCircleSize(4f);
set.setFillAlpha(65);
set.setFillColor(ColorTemplate.getHoloBlue());
set.setHighLightColor(Color.rgb(244,117,177));
set.setValueTextColor(Color.WHITE);
set.setValueTextSize(10f);

return set;
}


Подробнее здесь: https://stackoverflow.com/questions/542 ... same-graph
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»