views:

1370

answers:

4

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.

A: 

You can find a detailed tutorial here

tmatuschek
thanks for the information. But the tutorial explains abt drawing static plot. I want see the real time dynamic plot where data comes point by point and the UI has to show the plot dynamically.
Also, that tutorial is quite out of date at this point, and the API for the framework has shifted significantly since it was written.
Brad Larson
A: 

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.

epatel
+3  A: 

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

Brad Larson
Thanks Brad.I would like to ask you one more help on this. How to implement the ZoomIn and ZoomOut for Core-plot? It would be great if you provide some example.Please help me.
@ram007: There is no native support for pinch-zooming at the moment. You could place the graph within a UIScrollView, and then rescale the graph extents in response to changes in the scroll view zoom scale, but that would also zoom the axes during a pinch event. Unfortunately, the best way would be to add this capability to the framework by modifying CPResponder to handle multitouch gestures, and that would take some work.
Brad Larson
A: 

Hey Brad. Thanks for your comments. Could you please suggest a more recent tutorial ? Thanks in advance.

Mehdi Mahmoudi