Is there a good charting library for iPhone?

IosCocoaCocoa TouchChartsCore Plot

Ios Problem Overview


I have a need to render and display charts (bar charts for now, but more types may be needed later) in an iPhone app I'm working on. I've done some looking around and it doesn't look like there are any really good, mature charting libraries for iPhone yet. I've also looked for something written for Cocoa on the Mac that can be adapted, but haven't found anything great yet.

Anybody dealt with this before? Any recommendations?

I did find Core Plot, but it seems to be in the early stages of development.

Edit to add some details of requirements (as they currently stand ;) )

  • Bar Charts
  • Horizontal bar charts
  • Double stacked bar charts
  • Axis labels (including rotated 90 degrees on the y axis)
  • Labels above each bar on the chart
  • Shaded or custom backgrounds

Ios Solutions


Solution 1 - Ios

One of the many factors that motivated the Core Plot project was the lack of good plotting frameworks on the iPhone. Core Plot also encompases many other use cases including desktop systems, but its design has included iPhone support from the beginning. It's getting pretty close to useable and is currently in use in several shipping iPhone and OS X applications.

Edit 2/10

Core Plot has come a long way since I first posted the summary. The framework now has bar charts (including horizontal bar charts, I believe), axis labels (including aribrarty rotations), and fills and backgrounds for graphs. I'm not sure about stacked bar charts, but it wouldn't be hard to add to the CPBarPlot class that implements bar charts. As for annotations, there is a CPAnotation class which you could subclass to add your annotations, if there isn't the exact functionality you need.

Project on github.

Solution 2 - Ios

As a commercial alternative to CorePlot, I'd recommend giving ShinobiControls a go, they have some pretty good looking charts. They also have very good performance, rendering charts with 100,000+ points at 60fps and multi-touch support.

As a full disclosure, I work for Scott Logic which is the parent company for ShinobiControls.

Solution 3 - Ios

I have my own library called PowerPlot which is available under a dual-license model.

You can just follow the above link to install the demo app which shows off several sample charts. You can also download the GPL-version of the library and check out if it fits your needs. With the exception of horizontal bar charts it has the features requested - specifically, bar charts, stacked bar charts, various axis label positions and orientations.

Solution 4 - Ios

I went through my own search a year or two ago, and ended up making my own line graphing classes because I couldn't find anything that worked exactly the way I needed it to. The two big ones to look at though, are SM2DGraphView and GraphX. I haven't tried either in an iPhone project, but I know SM2DGraphView is open source so you could modify it if needed.

I've also considered using a WebView to use a JavaScript graphing library, but that's just a thought.

Solution 5 - Ios

there is new, nice Pie Chart 3D library. 3D charts which you can rotate and scale with fingers + protocol for getting information about tapped slice

http://iphone.orpi.pl/?p=20

Solution 6 - Ios

I needed a Radar Chart (or Spider web chart) and I couldn't find any, so I made my own implementation:

[RPRadarChart][1]

You are free to use it in whatever you want, if you do, let me know! I'll be slowly adding more features to it, if you want something specific ask me through github.

[1]: http://github.com/raspu/RPRadarChart "RPRadarChart"

Solution 7 - Ios

You can theoretically use the Google Chart API along with a Cocoa wrapper. This could be a light-weight solution.

Solution 8 - Ios

This one seems ok as well

s7graphview

(but never tried it really).

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMike AkersView Question on Stackoverflow
Solution 1 - IosBarry WarkView Answer on Stackoverflow
Solution 2 - IosColinEView Answer on Stackoverflow
Solution 3 - Iosuser8472View Answer on Stackoverflow
Solution 4 - IosMarc CharbonneauView Answer on Stackoverflow
Solution 5 - IospluszView Answer on Stackoverflow
Solution 6 - IosJP IllanesView Answer on Stackoverflow
Solution 7 - IosJulien ChastangView Answer on Stackoverflow
Solution 8 - IosyonelView Answer on Stackoverflow