Вам необходимо установить xRange и yRange для области печати, чтобы установить диапазон значений, которые будет отображать график.Что-то вроде:
plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace;
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation: CPTDecimalFromDouble(-5.0) length: CPTDecimalFromDouble(10.0)];
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation: CPTDecimalFromDouble(-5.0) length: CPTDecimalFromDouble(10.0)];
Чтобы отобразить фактические точки, вам нужно настроить объект dataSource графа, и он должен реагировать на методы источника данных:
-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot;
-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index;
Еслиу вас есть только один сюжет, вы можете игнорировать первый аргумент numberForPlot :.Второй аргумент будет 0, когда он хочет значение оси x для точки, и будет 1, когда он хочет значение оси Y для точки.Индекс - это номер точки для вашего графика.Таким образом, предполагая, что у вас есть данные в NSArray с именем myDataArray, где каждый объект в этом массиве является другим NSArray со значениями x, y, у вас будет что-то вроде:
-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot;
{
return [myDataArray count];
}
-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index;
{
return [[myDataArray objectAtIndex: index] objectAtIndex: fieldEnum];
}
Вы можете настроить массив данныхс фиксированными данными, такими как:
NSArray *myDataArray = [NSArray arrayWithObjects:
[NSArray arrayWithObjects: [NSNumber numberWithInt: 2], [NSNumber numberWithInt: 3], nil],
[NSArray arrayWithObjects: [NSNumber numberWithInt: 3], [NSNumber numberWithInt: 2], nil],
[NSArray arrayWithObjects: [NSNumber numberWithInt: 5], [NSNumber numberWithInt: 5], nil],
nil];