Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MPAndroidChart LineChart: Using dates instead of Strings for X-axis

MPAndroidChart LineChart by default accepts Strings for X-axis. Is there a way to set the Date as a datatype for the X-axis?

The problem with just converting Date into strings is that the graph can be skewed depending on the data points. For example, if I have one data entry on January and 10 entries in June, by default the graph is just split into 11 and plot accordingly.

I want a "Your weight over time" graph, where X-Axis represents time. User weights in at random times, so some dates will have entry and some dates will not.

like image 795
Azho KG Avatar asked Oct 20 '22 03:10

Azho KG


2 Answers

I found a thread on the project's gitHub ( https://github.com/PhilJay/MPAndroidChart/issues/12 ).

Apparently, this feature is not yet implemented.

Update

Doing a bit of search, I found this alternative library:

https://github.com/lecho/hellocharts-android

It supports values for x-axis.

UPDATE Since 2016, this feature has been included in MPAndroid. See https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartExample/src/main/java/com/xxmassdeveloper/mpchartexample/LineChartTime.java for an exapmle in the docs.

like image 194
Adrian Sicaru Avatar answered Nov 27 '22 15:11

Adrian Sicaru


You can make new array with full dates and fill empty positions with previous values. For example: you making an array may[31] for each day of may, initializate it with zeroes, and then do something like this:

may[1] = values[1];  
for (int i = 2; i <= may.size(); ++i) {
    if (may[i] == 0)
        may[i] = may[i-1];
    }
like image 24
Wackaloon Avatar answered Nov 27 '22 16:11

Wackaloon