Appbrain
Appbrain

Reputation: 414

real time plotting on iPhone using core plot?

I want to use core-plot for drawing line graph dynamically. data won't come at a time, we will be receiving point by point dynamically.

Is it possible to draw the chart dynamically using core-plot i.e drawing point by point as on when we receive the (x,y) point?

Please help me, Thanks.

Upvotes: 21

Views: 20613

Answers (2)

Brad Larson
Brad Larson

Reputation: 170319

Yes, you can do this reasonably easily. For each received data point, append it to an array of values to display. As these data points come in, call -reloadData on the Core Plot graph (or just the particular plot) to redraw the graph, passing in the array you just added a value to in response to the -numbersForPlot:field:recordIndexRange: delegate method.

If you need to adjust the plot range to track your data points (for a moving ticker), recalculate the new CPPlotRange for the X axis and set the plot space's xRange property to that.

Use the CPTestApp-iPhone, AAPLot, or StockPlot examples as templates for how to set up the line chart overall, and modify from that starting point.

I do something similar to this on the Mac in a scientific application: alt text
(source: sunsetlakesoftware.com)

Upvotes: 20

epatel
epatel

Reputation: 46051

Sounds like you could make use of a demo project I put together and wrote about here (not core plot related though).

It draws a EKG graph but should easily be modified to use another input than the repeated "heart beat"...See line 320 in EAGLView.m where the indata is entered into the array.

Upvotes: 8

Related Questions