Ось DateTime в MPAndroidChart

Я использую MPAndroidChart в своем приложении. Я хочу построить диаграмму, используя значения на оси y и даты на оси x. Я не нашел оси даты и времени в API MPAndroidChart. Есть ли способ построить xAxis с использованием даты? У меня есть значения для построения графика по датам. Я хочу показать даты в формате (ddMMM-yy) на xAxis и значения на yAxis. Может ли кто-нибудь передать мне образец ссылки на то же самое?

Пример данных:

Date(xAxis) | Value(yAxis)
------------|-------------
01/01/2001  |  966.78
01/02/2001  |  666.78
01/03/2001  |  966.78
01/04/2001  |  966.78
01/05/2001  |  966.78
01/06/2001  |  966.78
01/07/2001  |  966.78

person SUNIL JOSHI    schedule 21.06.2015    source источник
comment
Не могли бы вы попробовать это: stackoverflow.com/a/40806503/1343788   -  person Mehul Kabaria    schedule 06.02.2017


Ответы (3)


Это одно из самых старых усовершенствований. К сожалению, MPAndroid еще не поддерживает его. Источник: https://github.com/PhilJay/MPAndroidChart/issues/12 https://github.com/PhilJay/MPAndroidChart/issues/133

person Michał    schedule 28.06.2016
comment
Кажется, в 2021 году это все еще невозможно, как там говорят, решение состоит в том, чтобы предоставить массив описаний индексов для каждой записи дня. - person Mario Codes; 30.01.2021

Я думаю, вы можете настроить массив Xaxis в соответствии с вашими датами и проанализировать его на диаграмме, например

           if (mRecordDate.equals(mCurrentDate)) {
                        float weightVal = 0.0f, bmiValue = 0.0f;
                        try {
                            weightVal = (float) (profileWeightInfo.getWeight());
                        } catch (Exception e) {
                            Log.e("Error" + "Parsing weightVal Entry");
                        }
                        try {
                            bmiValue = (float) (profileWeightInfo.getBmi());
                        } catch (Exception e) {
                            Log.e("Error" + "Parsing diaVal Entry");
                        }
                        valuesWeights.add(new Entry(weightVal, counter));
                        valueBMI.add(new Entry(bmiValue, counter));
                        xVals.add(mRecordDate);

                    }
                }
                if (xVals.indexOf(mCurrentDate) < 0) {
                    valuesWeights.add(new Entry(0, counter));
                    valueBMI.add(new Entry(0, counter));
                    xVals.add(mCurrentDate);
                }
                counter++;

Спасибо

person MeshPadukka    schedule 03.05.2016

Я знаю, что уже поздно, но это может быть полезно для кого-то.

Вы можете хранить даты в массиве, а затем отображать их по оси x диаграммы, используя свойство setValueFormatter диаграммы. Вверху объявите массив dev. final String dev1[] = new String[100];

Тогда где у вас есть ваша диаграмма

   final JSONObject object = jsonArray.getJSONObject(i);

   dev1[i] = object.getString("real_time");
   barEntries.add(new BarEntry(i, Float.parseFloat(value)));
   final BarDataSet barDataSetgen = new BarDataSet(barEntries, " ");

   XAxis bottomAxis = mcvbarchart.getXAxis();

   bottomAxis.setValueFormatter(new IndexAxisValueFormatter(dev1));   /*for x axis values*/
   bottomAxis.setLabelCount(barEntries.size());
   bottomAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
person twinkle    schedule 29.05.2020