это один из моих первых проектов с 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
MPAndroidChart и несколько строк на одном графике ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1763186690
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;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/54221569/mpandroidchart-and-multiple-lines-on-same-graph[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия