Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

real time plotting on iPhone using core plot?

Tags:

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.

like image 442
Appbrain Avatar asked Mar 08 '10 07:03

Appbrain


People also ask

What is CorePlot?

CorePlot is a two dimensional (2D) graph plotting library which provides highly customizable way to render many types of graph/charts. It is purely build around using the Apple Core APIs like Quartz 2D, Core Animation. Using CorePlot library, you can draw awesome graph/charts in iOS, macOS and tvOS.


2 Answers

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)

like image 170
Brad Larson Avatar answered Sep 22 '22 23:09

Brad Larson


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.

like image 38
epatel Avatar answered Sep 18 '22 23:09

epatel