У меня есть три серии на моем графике. Серия 1 и 2 использование левая сторона шкалы, серия 3 использовать вторую шкалу, добавляя сБиблиотека Android GraphView - добавлена серия GraphView.getSecondScale(). AddSeries (серия) не может быть удалена
CurrentPlot.getSecondScale().addSeries(sensor3Series);
Пользователь имеет возможность увидеть все три серии или только некоторые из них.
серия 1 и 2 могут быть удалены с
currentPlot.removeSeries(sensor1Series);
currentPlot.removeSeries(sensor2Series);
но серия-не может быть удалена. Я попытался
currentPlot.removeAllSeries();
currentPlot.removeSeries(sensor3Series);
Оба не снимаю серию, используя вторую шкалу.
Пожалуйста, советы, как удалить
экстракт Код:
Initialization (упрощенно):
private void initChart(boolean isContinuous) {
// find the temperature levels plot in the layout
currentPlot = (GraphView) findViewById(R.id.graph);
// setup and format sensor 1 data series
sensor1Series = new LineGraphSeries<>();
// setup and format sensor 2 data series
sensor2Series = new LineGraphSeries<>();
// setup and format sensor 3 data series
sensor3Series = new LineGraphSeries<>();
currentPlot.getGridLabelRenderer().setNumVerticalLabels(10);
currentPlot.getGridLabelRenderer().setNumHorizontalLabels(5);
sensor1Series.setColor(Color.YELLOW);
sensor2Series.setColor(Color.RED);
sensor3Series.setColor(Color.GREEN);
currentPlot.getGridLabelRenderer().setVerticalAxisTitle("Watt");
// SKIPPED code to add data to the 3 series with appendData()
currentPlot.setTitle(dayToShow);
minMaxVal = getMinMax();
// SKIPPED set min and max bounds of both scales to manual and set the values
// SKIPPED add setOnDataPointTapListeners to all three series with setOnDataPointTapListener()
currentPlot.addSeries(sensor2Series);
currentPlot.getSecondScale().addSeries(sensor3Series);
currentPlot.addSeries(sensor1Series);
}
Код для удаления выбранных серий (через CheckBox) в OnClick:
case R.id.cb_solar:
CheckBox cbSolar = (CheckBox)findViewById(R.id.cb_solar);
if (cbSolar.isChecked()) {
currentPlot.addSeries(sensor1Series);
showSeries1 = true;
} else {
currentPlot.removeSeries(sensor1Series);
showSeries1 = false;
}
break;
case R.id.cb_cons:
CheckBox cbCons = (CheckBox)findViewById(R.id.cb_cons);
if (cbCons.isChecked()) {
currentPlot.addSeries(sensor2Series);
showSeries2 = true;
} else {
currentPlot.removeSeries(sensor2Series);
showSeries2 = false;
}
break;
case R.id.cb_light:
CheckBox cbLight = (CheckBox)findViewById(R.id.cb_light);
if (cbLight.isChecked()) {
currentPlot.getSecondScale().addSeries(sensor3Series);
showSeries3 = true;
} else {
currentPlot.removeAllSeries();
//removeSeries(sensor3Series);
showSeries3 = false;
}
break;
EDIT: Обход проблемы - установите цвет Серия для Color.TRANSPARENT
case R.id.cb_light:
CheckBox cbLight = (CheckBox)findViewById(R.id.cb_light);
if (cbLight.isChecked()) {
currentPlot.getSecondScale().addSeries(sensor3Series);
sensor3Series.setColor(Color.GREEN);
showSeries3 = true;
} else {
currentPlot.removeSeries(sensor3Series);
sensor3Series.setColor(Color.TRANSPARENT);
showSeries3 = false;
}
break;
Это делает третий ряд невидимым, но вторая шкала на правой стороне еще видна.
Спасибо за ваш ответ. Попробует. – BeeGee1962