Проблема в построении линейного графика с основным графиком - PullRequest
0 голосов
/ 14 июня 2011

У меня есть ось Y с номерами общего теста
и ось х для времени

Ниже приведен код, который я использую для построения:

- (NSUInteger)numberOfRecordsForPlot:(CPPlot *)plot {  
    NSUInteger recordplot;  

    if (plot.identifier == @"Plot Error")  
    {  
        recordplot = [HourErroroArray count];  

        recordplot--;  
    }  

    return recordplot;  
}  


- (NSNumber *)numberForPlot:(CPPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index {  
    NSDecimalNumber *num = nil;  
    int eTemp1;  
    int eHour1;  
    int eMin1;  
    int eSec1;  
// Number of the X axis asked  
    if (fieldEnum == CPScatterPlotFieldX)  
    {  

    if (plot.identifier == @"Plot Error")  
        {  
        eHour1=[[HourErroroArray objectAtIndex:index]intValue ];  
        eMin1=[[MinErrorArray objectAtIndex:index]intValue ];  
        eSec1=[[SecErrorArray objectAtIndex:index]intValue ];  

        eTemp1=eHour1*eMin1*eSec1;  

        num = (NSDecimalNumber *)[NSDecimalNumber numberWithInt:eTemp1];  
        }  
    }  
// Number of the Y axis asked  
    else if (fieldEnum == CPScatterPlotFieldY)  
     {   
        if (plot.identifier == @"Plot Error")  
        {  
          num = (NSDecimalNumber *)[NSNumber numberWithInteger:index];  

        }  

     }   

    return num;  

}  

Я вижу, что график строится, но только по прямой линии, то есть параллельно оси XXIS

! -> Ось Y, _ -> Ось X и. -> строится линия для значений

y-axis  
!  
!   
! ...........  
!
______________ x-axis

но я хочу что-то вроде следующего:

http://www.buggyprogrammer.co.uk/2010/10/03/using-core-plot-to-draw-line-graphs/

Возможно, не вверх-вниз, но, по крайней мере, под некоторым углом.

1 Ответ

0 голосов
/ 14 июня 2011

Возможно, вы переключили значения x и y.Вы имели в виду, что значение y будет индексом, а значение x - вычисленным значением?

В противном случае вставьте некоторые операторы NSLog в -numberForPlot:field:recordIndex: и убедитесь, что числа (eTemp1, eHour1, eMin1, eSec1)это то, что вы ожидаете.

[добавлено в ответ на комментарии]

Проверьте диапазоны вашего графика на пространстве графика, чтобы убедиться, что они соответствуют вашим данным.Если длина диапазона y слишком велика, график сжимается так, что он выглядит как горизонтальная линия.Распространенная ошибка с диапазонами графиков - ошибочное определение длины конечного значения при создании диапазона.CPTPlotRange работает так же, как NSRange.В качестве эксперимента попробуйте использовать метод пробельного участка -scaleToFitPlots:, чтобы ваши данные заполнили диапазон заговора.См. Пример Mac CPTTestApp.

...