Question

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
Was it helpful?

Solution

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.

OTHER TIPS

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.

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.

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.

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

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

RPRadarChart

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.

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

This one seems ok as well

s7graphview

(but never tried it really).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top