MPAndroidChart con valores nulos

Estoy usando el MPAndroidChart y realmente lo estoy disfrutando.

Una "pequeña" necesidad que tengo es que puedo poner valores nulos a los 'entrys'. Estoy supervisando las conexiones de apache en los servidores de mi sistema, y ​​me gustaría ver si están abajo (donde pongo el valor nulo) o si simplemente no conections (0).

He intentado, pero la clase Entry no acepta 'null' como valor que muestra el mensaje: 'El constructor Entry (null, int) es indefinido'

¡Gracias!

2 Solutions collect form web for “MPAndroidChart con valores nulos”

Una posible solución para usted podría ser para comprobar el tiempo el objeto que recibió es nulo , o no. Si el objeto es nulo, ni siquiera crea un objeto Entry lugar de simplemente establecer su valor en null.

Ejemplo:

 // array that contains the information you want to display ConnectionHolder[] connectionHolders = ...; ArrayList<Entry> entries = new ArrayList<Entry>(); int cnt = 0; for(ConnectionHolder ch : connectionHolders) { if(ch != null) entries.add(new Entry(ch.getNrOfConnections(), cnt)); else { // do nothing } cnt++; // always increment } 

Esto crearía, por ejemplo, un LineChart donde no se dibujan círculos en índices donde el objeto ConnectionHolder era nulo.

Para una versión futura de la biblioteca, intentaré agregar la característica para que se admitan valores nulos.

Mi solución es dibujar otro DataSet con color TRANSPARENTE (o arbitrario): – gráfico con un número fijo de valores de X – los valores de Y se actualizan periódicamente – el indicador booleano indica la parte transparente (u otro color)

 private static final int SERIES_SIZE = 360; int xIndex = -1; float xIndexVal; private LineChart chart; private boolean currentFlag; public void createChart(LineDataSet dataSet) { LineData chartData = new LineData(); prepareDataSet(dataSet); chartData.addDataSet(dataSet); for (int i = 0; i < SERIES_SIZE; i++) { chartData.addXValue("" /*+ i*/); } chart.setData(chartData); } private void prepareDataSet(LineDataSet dataSet, YAxis axis, int color) { // configure set } public void update(Float val, boolean flag) { List<ILineDataSet> dsl = chart.getData().getDataSets(); Log.d("chart", String.format("%s --- %d sets, index %d", descr, dsl.size(), xIndex)); if (xIndex == SERIES_SIZE - 1) { // remove all entries at X index 0 for (int i = 0; i < chart.getData().getDataSetCount(); i++) { Entry entry0 = chart.getData().getDataSetByIndex(i).getEntryForIndex(0); if (entry0 != null && entry0.getXIndex() == 0) { chart.getData().removeEntry(entry0, i); Log.d("chart", String.format("entry 0 removed from dataset %d, %d entries in the set", i, chart.getData().getDataSetByIndex(i).getEntryCount())); } else { Log.d("chart", String.format("all %d entries in the set kept", chart.getData().getDataSetByIndex(i).getEntryCount())); } } // remove empty set, if any for (Iterator<ILineDataSet> mit = dsl.iterator(); mit.hasNext(); ) { if (mit.next().getEntryCount() == 0) { mit.remove(); Log.d("chart", String.format("set removed, %d sets", dsl.size())); } } // move all entries by -1 for (ILineDataSet ds : dsl) { for (Entry entry : ((LineDataSet)ds).getYVals()) { entry.setXIndex(entry.getXIndex() - 1); } } } else { xIndex++; } if (currentFlag != flag) { currentFlag = !currentFlag; LineDataSet set = new LineDataSet(null, ""); prepareDataSet(set, chart.getAxisLeft(), currentFlag ? Color.TRANSPARENT : Color.BLUE); chart.getData().addDataSet(set); if (xIndex != 0) { chart.getData().addEntry(new Entry(xIndexVal, xIndex - 1), dsl.size() - 1); } } xIndexVal = val; chart.getData().addEntry(new Entry(val, xIndex), dsl.size() - 1); chart.notifyDataSetChanged(); chart.invalidate(); } 
  • Cómo obtener el desplazamiento de desplazamiento en MPAndroidChart?
  • MPAndroidChart LineChart: Uso de fechas en lugar de cadenas para el eje X
  • MPAndroidChart - Diagrama de barras redondeado
  • MPAndroidChart: Ocultar etiquetas de valor en un gráfico de barras apilado
  • MPAndroidChart - Añadir etiquetas al gráfico de barras
  • Cómo hacer un gráfico en tiempo real de rollingwindow usando MPAndroidChart
  • MPAndroidChart ajuste gráfico padding / offset
  • Mpandroidchart - ¿Cómo puedo evitar los valores repetidos en Y-Axis?
  • MPAndroidChart set center vertical line
  • Mostrar valores de eje dentro de las barras BarChart de la biblioteca MPAndroidChart
  • ¿Cómo obtener bar clic evento de gráficos horizontalbar de MPcharts en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.