2015-02-04 3 views
2

У меня есть моя линейная диаграмма с xVals = "Su, Mo, Tu, Se, Th, Fr , Sa", и я хочу представить 28 очков.MPandroidchart - представляет 4 точки для каждого xValue

4 балла за каждый xValue. (Мо будет иметь 4 точки, Ту будет иметь 4 очка, ....)

Я хочу сделать это с несколькими точками в каждом xVal. enter image description here

Теперь у меня есть, и я понимаю, почему.

One or more of the DataSet Entry arrays are longer than the x-values array of this ChartData object. 

Для этой ошибки сообщения, я помещаю свои xVals с "Su , Su, Su, Su, Mo, Mo, Mo, Mo, Tu, Tu, Tu, Tu, Th, Th, Th, Th, Fr, Fr, Fr, Fr , Sa, Sa, Sa, Sa". Но мне нужно объединить свои xVals в будний день.

Как я могу решить эту проблему?

Filipe Это результат вашего предложения: Я просто заменяю свои ценности на что-то случайное.

float somefloatvalue = (float) ((Math.random() * xIndex) + 3); 

enter image description here

ответ

0

То, что вы пытаетесь сделать, это легко возможно.

Вам необходимо создать 4 DataSet объектов, каждый из которых содержит 7 значений (по одному на каждый день).

Ваш массив x-values ​​должен содержать только 7 значений (по одному на каждый день).

Вы можете найти пример того, как создать несколько наборов данных здесь: https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartExample/src/com/xxmassdeveloper/mpchartexample/MultiLineChartActivity.java

Упрощенный пример:

ArrayList<String> xVals = new ArrayList<String>(); 

    // add 7 days 
    xVals.add("su"); xVals.add("mo"); xVals.add("tu"); xVals.add("we"); 
    xVals.add("th"); xVals.add("fr"); xVals.add("sa"); 

    ArrayList<LineDataSet> dataSets = new ArrayList<LineDataSet>(); 

    // create 4 datasets 
    for (int z = 0; z < 4; z++) { 

     ArrayList<Entry> values = new ArrayList<Entry>(); 

     // loop through 7 days (xIndex 0 == su) 
     for (int xIndex = 0; xIndex < 7; xIndex ++) { 
      float somefloatvalue = 1f; 
      values.add(new Entry(somefloatvalue, xIndex)); 
     } 

     LineDataSet d = new LineDataSet(values, "DataSet "); 
     dataSets.add(d); 
    } 

    LineData data = new LineData(xVals, dataSets); 
    mChart.setData(data); 
    mChart.invalidate(); 
+0

не привело. Я обновил свой пост с результатом вашего подхода. У вас есть идея? – rguerra

+0

Вы хотели иметь 4 балла за каждую x-ценность? Разве это не скриншот, который вы опубликовали именно так? –

+0

Представление отличается. Мышление в целых числах ... Если Mo = 0 и Su = 1 ... Я хочу представить 4 точки для xVal = 0. Я получу (0, point1); (0,25, точка 2); (0,5, точка 3); (1, точка 4). В вашем примере у меня есть 4 точки в xval = 1. Вы поняли? – rguerra

 Смежные вопросы

  • Нет связанных вопросов^_^