2013-02-21 2 views
0

Я просмотрел множество примеров учебников по основному сюжету, но в большинстве из них проблемы. Если кто-нибудь может предоставить рабочий учебник для создания линейного графика с данными X = (сентябрь, октябрь, ноябрь, декабрь) и Y = (20,40,80,30) с помощью X & Оси Y также используют структуру ядра в iOS? Любой код был бы очень полезен для меня ..Создание линейного графика Coreplot с осями x и y в iOS

ответ

3

Если вы хотите сделать линейный график в основном графике, есть некоторые вещи, о которых следует помнить. Сначала убедитесь, что вы создаете свой контроллер просмотра для графического отображения. Вам нужно сделать это делегатом сюжета, указать источник данных и делегат plotspace.

@interface ViewController : UIViewController <CPTScatterPlotDelegate, CPTPlotSpaceDelegate, CPTPlotDataSource> 

Это добавлено в формате .h. ** Не забудьте также импортировать CorePlot-cocoaTouch.h!

Далее, в представлении появился способ, по которому вы захотите поместить переменные в массив. Вот пример, который я сделал, чтобы сделать быстрый линейный граф.

- (void)viewDidAppear:(BOOL)animated 
{ 
float b = 1; 
float c = 5; 

Xmax = 10; 
Xmin = -10; 
Ymax = 10; 
Ymin = -10; 

float inc = (Xmax - Xmin)/100.0f; 
float l = Xmin; 

NSMutableArray *linearstuff = [NSMutableArray array]; 

for (int i = 0; i < 100; i ++) 
{ 
    float y = (b * (l)) + c; 
    [linearstuff addObject:[NSValue valueWithCGPoint:CGPointMake(l, y)]]; 
    NSLog(@"X and Y = %.2f, %.2f", l, y); 
    l = l + inc; 
} 

self.data = linearstuff; 
[self initPlot]; 
} 

Вызов функции [self initPlot] вызывает функцию, позволяющую фактически создавать графики. Он очень похож на весь код примера, который есть.

После того, как у вас есть данные в массиве, необходимо сделать графики так, как вы хотите, чтобы они выглядели. Еще раз взгляните на весь код для configureHost, сконфигурируйте Graph и т. Д., Он прямо на веб-сайте Core Plot. Еще одна важная вещь, которую следует помнить, - это метод numberOfRecordsForPlot. Вот мой образец. Это позволяет узнать, сколько у вас данных.

- (NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot 
{ 
return [_data count]; 
} 

_data - массив, который я создал для хранения всего. Затем вы хотите скопировать данные. С методом numberForPlot. Еще раз вот образец.

- (NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 
{ 
NSLog(@"numberForPlot"); 
if ([plot.identifier isEqual:@"linear"]) 
{ 
    NSValue *value = [self.data objectAtIndex:index]; 
    CGPoint point = [value CGPointValue]; 

    // FieldEnum determines if we return an X or Y value. 
    if (fieldEnum == CPTScatterPlotFieldX) 
    { 
     return [NSNumber numberWithFloat:point.x]; 

    } 
    else // Y-Axis 
    { 
     return [NSNumber numberWithFloat:point.y]; 

    } 
    NSLog(@"x is %.2f", point.x); 
    NSLog(@"y is %.2f", point.y); 
} 
return [NSNumber numberWithFloat:0]; 
} 

Надеюсь, это поможет вам начать работу. Core Plot - отличный способ графического отображения вещей, и их сайт наполнен большой информацией. Надеюсь это поможет.

+0

Да, да. Это очень помогает. Спасибо – Shaunak

Смежные вопросы