用核心图绘制折线图中的问题

时间:2011-06-14 15:48:38

标签: ios graph charts core-plot linechart

我有y轴,总测试数为
和x轴表示时间

以下是我用来绘制的代码:

- (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;  

}  

我可以看到图表是绘图但只是在一条直线上,即与xaxis平行

! - > y轴,_ - > x轴和。 - >行正在绘制值

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

但我想要以下内容:

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

也许不是上下线,但至少在一定程度上。

1 个答案:

答案 0 :(得分:0)

您可能已切换x和y值。你的意思是y值是索引而x值是计算值吗?

否则,在-numberForPlot:field:recordIndex:中插入一些NSLog语句,并确保数字(eTemp1,eHour1,eMin1,eSec1)符合您的预期。

[在回复评论时添加]

检查绘图空间上的绘图范围,以确保它们对您的数据合理。如果y范围的长度太大,它将压缩绘图,使其看起来像一条水平线。绘图范围的常见错误是在创建范围时将最终值的长度误认为是错误。 CPTPlotRange的工作方式与NSRange相同。作为实验,请尝试使用绘图空间方法-scaleToFitPlots:让数据填充绘图范围。有关示例,请参阅Mac CPTTestApp。