I am trying to find a fast and reliable charting library. After some searching, I found 4 libraries: AChartEngine [warning! official website is down and redirects to virus filled website!], WilliamChart, HelloCharts and AndroidPlot. I need some up to date feedback about the performance and the stability of these libraries because all the information I could find was outdated.
Asked
Active
Viewed 1.4e+01k times
114

Mateen Ulhaq
- 24,552
- 19
- 101
- 135

user3488996
- 1,339
- 2
- 10
- 13
-
`AChartEngine` is the best choice at the moment (among the open source libraries) – Oleksii K. Oct 20 '14 at 13:56
-
Would be interesting why you think so? ;) – code monkey Oct 20 '14 at 13:57
-
1Currently I'm working on forex mobile client app. Candlestick chart is required. We spent lot of time, and `AChartEngine` looks much better then others. I optimized it's rendering time from `270ms` per frame to `80ms` in a few hours. – Oleksii K. Oct 20 '14 at 14:00
-
1possible duplicate of [Android charts: achartengine or AndroidPlot?](http://stackoverflow.com/questions/7730827/android-charts-achartengine-or-androidplot) – Bartosz Bilicki Nov 07 '14 at 07:55
-
2There's some very up to date info comparing Android Chart Performance of 5x libraries plus a newcomer SciChart here: http://www.scichart.com/android-chart-performance-comparison/ – Dr. Andrew Burnett-Thompson Jun 23 '16 at 12:29
-
that comparison is pretty sketchy. at the very least they could publish the code they are using to benchmark their competitor's apps. would be very surprised if the benchmark differences arent caused by preferential usage of a downsampling technique like LTTB, which could also have been used any other lib for probably an equal or greater benchmark result on large datasets. – Nick Oct 06 '16 at 04:33
-
Also: [Android Chart Lib Comparison](http://codix.io/cmp/Android%20Charting%20Libraries) – Nick Feb 01 '17 at 20:37
-
1**AChartEngine** looks abandoned. **AndroidPlot** and **MPAndroidChart** look good - I especially like the demo source code for MPAndroidChart – Someone Somewhere Jun 06 '19 at 12:19
5 Answers
188
You can use MPAndroidChart.
It's native, free, easy to use, fast and reliable.
Core features, benefits:
- LineChart, BarChart (vertical, horizontal, stacked, grouped), PieChart, ScatterChart, CandleStickChart (for financial data), RadarChart (spider web chart), BubbleChart
- Combined Charts (e.g. lines and bars in one)
- Scaling on both axes (with touch-gesture, axes separately or pinch-zoom)
- Dragging / Panning (with touch-gesture)
- Separate (dual) y-axes
- Highlighting values (with customizeable popup-views)
- Save chart to SD-Card (as image)
- Predefined color templates
- Legends (generated automatically, customizeable)
- Customizeable Axes (both x- and y-axis)
- Animations (build up animations, on both x- and y-axis)
- Limit lines (providing additional information, maximums, ...)
- Listeners for touch, gesture & selection callbacks
- Fully customizeable (paints, typefaces, legends, colors, background, dashed lines, ...)
- Realm.io mobile database support via MPAndroidChart-Realm library
- Smooth rendering for up to 10.000 data points in Line- and BarChart
- Lightweight (method count ~1.4K)
- Available as .jar file (only 500kb in size)
- Available as gradle dependency and via maven
- Good documentation
- Example Project (code for demo-application)
- Google-PlayStore Demo Application
- Widely used, great support on both GitHub and stackoverflow - mpandroidchart
- Also available for iOS: Charts (API works the same way)
- Also available for Xamarin: MPAndroidChart.Xamarin
Drawbacks:
- No official support for dynamic & realtime data, limited performance in that area
Disclaimer: I am the developer of this library.

Philipp Jahoda
- 50,880
- 24
- 180
- 187
-
I particulary like this library. clean and beautiful.nicely done thanks. I think I am going with this Charting Lib. – user3488996 Oct 21 '14 at 00:03
-
-
-
I would not worry for up to 1000 objects - if you are using line or barchart, 10.000 - 20.000 objects should be possible – Philipp Jahoda Jul 25 '15 at 15:20
-
I'm currently using MpChart and on three years old tablets I can easily plot up to 15000 points ;) – andrea.rinaldi Aug 05 '15 at 07:25
-
If I wanted to just pull the "Bar" from the bar chart, would it be possible? Please see post here: http://stackoverflow.com/questions/35346511/how-to-programatically-create-a-bar-displaying-poll-results-under-answer-option – tccpg288 Feb 11 '16 at 18:18
-
@PhilippJahoda The library is good, but this leads to the "unable to execute dex" issue as i need other libraries as well. I only want to use the bar chart function. I trimmed the library but it is still having the same issue. Is there any other ways to reduce the methods so that i would use it in my project? – Antoine Murion Feb 24 '16 at 04:28
-
3The library has approximately 1.400 methods. That is not a very big number (compared to others) and should not really affect the 65K limit unless you have either a huge number of other libraries or libraries that have a significantly higher method count (e.g. Play Services 30K, AppCompat 12K, ... ). This means that optimization is probably more suitable elsewhere. Also it is possible to [build apps with more than 65K methods](http://developer.android.com/tools/building/multidex.html). – Philipp Jahoda Feb 24 '16 at 08:45
-
7I have to say that the lack of Time Series is a huge turn down. I spent some time to integrate this awesome lib until I found there is no way I can scale the x axis properly with date/time. – Benoit Duffez Mar 19 '16 at 08:55
-
-
does it supported following feature, multiple values of y-axis for single x-axis point? http://stackoverflow.com/questions/37656960/duplicate-x-axis-value-in-mpandroidchart-library – Pranita Patil Jun 07 '16 at 05:53
-
1It seems MPAndroidChart support only equidistant values for X-axis. It's a disadvantage. – ivan Jun 09 '16 at 19:53
-
SciChart supports time-series as well as Date-series and non-equidistant values for X-Axis. It also outperforms MPAndroidCharts for streaming / realtime applications https://www.scichart.com/android-charts – Dr. Andrew Burnett-Thompson Aug 09 '17 at 21:52
-
is it possible to draw multiple line chart with different gradient (Ex: line1(red, green), line 2 (blue, yellow) in a single chart.) because as i know gradient we can apply on Chart not in Line. Please suggest if possible – Parth Mar 14 '18 at 09:12
-
Hi Philipp, This library now free or not? I need to render dynamic data's. Totally confused :( – Ranjithkumar Mar 26 '18 at 18:10
-
-
is there any way to update an entry at a specific index in the pie chart? – Jeffrey Jun 23 '21 at 02:45
-
87
See Android arsenal (category Graphics) for more libraries.

Hadi
- 1,294
- 1
- 8
- 8

Bartosz Bilicki
- 12,599
- 13
- 71
- 113
-
13This is the best answer simply because it provides a comprehensive list of possible libraries. – chenshuiluke Sep 14 '16 at 20:22
-
1
-
15
If you're looking for something more straight forward to implement (and it doesn't include pie/donut charts) then I recommend WilliamChart. Specially if motion takes an important role in your app design. In other hand if you want featured charts, then go for MPAndroidChart.

diogobernardino
- 1,142
- 8
- 11
-
I need the pie chart type in my app, this is why I choosed MPAndroidChart, plus it has some nice rendered charts – user3488996 Oct 25 '14 at 14:42
6
You can create a plethora of different chart types relatively quickly with loads of customizable options.
5
- Achartengine: I have used this. Although for real time graph this might not give good performance if you do not tweak properly.

arijit
- 63
- 6