Tengo que trazar dos diferentes conjuntos de datos en una sola gráfica.

DataSet-1

    String[] xAxisOne = new String[] {
            "0", "1", "2", "3", "4", "5", "6"
    };

    float[] dataInput = {
            1f, 2f, 3f, 4f, 5f, 6f, 7f
    };

Conjunto de datos-2

    String[] xAxisTwo = new String[] {
            "0", "2", "4", "5", "6", "8", "9"
    };

    float[] dataIn = {
            3f, 4f, 5f, 6f, 7f, 8f, 9f
    };

En los datos anteriores, DataSet-1 es la referencia a que el gráfico se crea.
Conjunto de datos-2 tiene que estar en la misma gráfica con diferente conjunto de Valores de X {xAxisTwo}.

Existentes en la Aplicación, la primera de 6 valores {dataInput} se trazan & el próximo 6 de los valores {dataIn} se trazan con referencia a xAxisOne, la forma de representar como se requiere.

InformationsquelleAutor VenomVendor | 2014-11-11

2 Comentarios

  1. 9

    Usted puede hacer esto con LineChart y la unificación de los x-eje y haciendo caso omiso de la «null» punto para cada conjunto de datos. Ver el código de abajo:

    //float[] dataInput = {
    //     1f, 2f, 3f, 4f, 5f, 6f, 7f
    //};
    //values for datainput Dataset1 at your axisone positions
    ArrayList<Entry> dataset1 = new ArrayList<Entry>();
    dataset1.add(new Entry(1f, 0));
    dataset1.add(new Entry(2f, 1));
    dataset1.add(new Entry(3f, 2));
    dataset1.add(new Entry(4f, 3));
    dataset1.add(new Entry(5f, 4));
    dataset1.add(new Entry(6f, 5));
    dataset1.add(new Entry(7f, 6));
    //float[] dataIn = {
    //     3f, 4f, 5f, 6f, 7f, 8f, 9f
    //};
    //values for datainput Dataset2 at your axisone positions
    ArrayList<Entry> dataset2 = new ArrayList<Entry>();
    dataset2.add(new Entry(3f, 0));
    dataset2.add(new Entry(4f, 2));
    dataset2.add(new Entry(5f, 4));
    dataset2.add(new Entry(6f, 5));
    dataset2.add(new Entry(7f, 6));
    dataset2.add(new Entry(8f, 7));
    dataset2.add(new Entry(9f, 8));
    //String[] xAxisOne = new String[] {
    //     "0", "1", "2", "3", "4", "5", "6"
    //};
    ///String[] xAxisTwo = new String[] {
    ///    "0", "2", "4", "5", "6", "8", "9"
    ///};
    //Union from xAxisOne and xAxisTwo
    String[] xAxis = new String[] {"0", "1", "2", "3", "4", "5", "6", "8", "9"};
    ArrayList<LineDataSet> lines = new ArrayList<LineDataSet> ();
    LineDataSet lDataSet1 = new LineDataSet(dataset1, "DataSet1");
    lDataSet1.setColor(Color.RED);
    lDataSet1.setCircleColor(Color.RED);
    lines.add(lDataSet1);
    lines.add(new LineDataSet(dataset2, "DataSet2"));
    LineChart chart = (LineChart) getView().findViewById(R.id.chart);
    chart.setData(new LineData(xAxis, lines));

    El resultado final será:

    Parcela de Varios Gráficos en una, en la MPAndroidChart

    Se ve que la línea roja de dataset1 tiene 2 puntos más que la línea azul.
    Si el dataset1 tienen sólo estos dos puntos(en la posición 1 y 3) como este:

    ArrayList<Entry> dataset1 = new ArrayList<Entry>();
    dataset1.add(new Entry(2f, 1));
    dataset1.add(new Entry(4f, 3));

    será el resultado:

    Parcela de Varios Gráficos en una, en la MPAndroidChart

    • llegar cuestión varargs mismatch; String[] cannot be converted to ILineDataSet
  2. 1

    puede utilizar este Gráfico de líneas pasar varias Conjunto de Datos

    LineChart lineChart1 = (LineChart) findViewById(R.id.chart1);
    ArrayList<Entry> entries = new ArrayList<>();
    entries.add(new Entry(4f, 0));
    entries.add(new Entry(8f, 1));
    entries.add(new Entry(6f, 2));
    entries.add(new Entry(10f, 3));
    entries.add(new Entry(18f, 4));
    entries.add(new Entry(9f, 5));
    ArrayList<Entry> entry = new ArrayList<>();
    entry.add(new Entry(3f, 0));
    entry.add(new Entry(10f, 1));
    entry.add(new Entry(4f, 2));
    entry.add(new Entry(14f, 3));
    entry.add(new Entry(12f, 4));
    entry.add(new Entry(5f, 5));
    ArrayList<LineDataSet> lines = new ArrayList<LineDataSet> ();
    String[] xAxis = new String[] {"1", "2", "3", "4", "5","6"};
    LineDataSet lDataSet1 = new LineDataSet(entries, "DataSet1");
    lDataSet1.setDrawFilled(true);
    lines.add(lDataSet1);
    LineDataSet lDataSet2 = new LineDataSet(entry, "DataSet2");
    lDataSet2.setDrawFilled(true);
    lines.add(lDataSet2);
    lineChart1.setData(new LineData(xAxis, lines));
    lineChart1.animateY(5000);
    }
    • Puede hacerlo en una línea con diferentes lleno de color?

Dejar respuesta

Please enter your comment!
Please enter your name here