在核心图中插入数据

时间:2010-12-06 09:20:16

标签: iphone objective-c core-plot

我是核心情节的初学者。我想在我的应用程序中使用核心图,以显示我从远程数据库获取的数据。我可以把我想要在数组中使用的数据,但我不知道如何使用这个数组来修改我的图形。

我在核心情节谷歌网站(http://code.google.com/p/core-plot/)和堆栈溢出上观看,但我找不到能帮助我的东西。

这是图形显示的内容,我想使用我的数组在图表图中插入我的数据。

编辑:

-(NSNumber *)numberForPlot:(CPPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 
{

 NSDecimalNumber *num = nil;
 if ( [plot isKindOfClass:[CPBarPlot class]] ) {
  switch ( fieldEnum ) {
   case CPBarPlotFieldBarLocation:
    num = (NSDecimalNumber *)[NSDecimalNumber numberWithUnsignedInteger:index];
    break;
   case CPBarPlotFieldBarLength:
            //num = (NSDecimalNumber *)[NSDecimalNumber numberWithUnsignedInteger:(index+10)+15];
//num = [NSNumber numberWithInt:values];
//num = (NSDecimalNumber *)[arrayTemperature objectAtIndex:index];
num =[ NSDecimalNumber numberWithInt:arrayTemperature ];

    if ( [plot.identifier isEqual:@"Bar Plot 2"] ) 
     num = [num decimalNumberBySubtracting:[NSDecimalNumber decimalNumberWithString:@"10"]];
    break;
  }
 }

 return num;
}

我也尝试过:

case CPBarPlotFieldBarLength:               
                //num = (NSDecimalNumber *)[NSDecimalNumber numberWithUnsignedInteger:(index+20)];
                //num = [NSNumber numberWithInt:values];
                //num = (NSDecimalNumber *)[arrayTemperature objectAtIndex:index]
                num=nil;
                int i=0;
                for (i=0; i=9;i++){

                    num = [arrayTemperature objectAtIndex:i];

                }

如果有人知道如何使用阵列或其他想法来解决这个问题,请告诉我。

2 个答案:

答案 0 :(得分:1)

假设arrayTemperature是一个NSNumbers(或NSDecimalNumbers)数组,这将起作用。您的数组也可以包含[NSNull null]来表示缺失值。

-(NSNumber *)numberForPlot:(CPPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 
{
    NSDecimalNumber *num = nil;
    if ( [plot isKindOfClass:[CPBarPlot class]] ) {
        switch ( fieldEnum ) {
        case CPBarPlotFieldBarLocation:
            num = (NSDecimalNumber *)[NSDecimalNumber numberWithUnsignedInteger:index];
            break;
        case CPBarPlotFieldBarLength:
            num = [arrayTemperature objectAtIndex:index];
            break;
        }
    }

    return num;
}

答案 1 :(得分:0)

所以我终于解决了我的问题 如果有人有兴趣,我就是这样做的:

    NSURL *getTemperature = [NSURL URLWithString:@"http://.....php"];   
    arrayTemperature = [[NSArray alloc] initWithContentsOfURL:getTemperature ];
    NSLog(@"Températures Array :%@",arrayTemperature);

    NSURL *getTemps = [NSURL URLWithString:@"http://....php"];  
    arrayTemps = [[NSArray alloc] initWithContentsOfURL:getTemps ];
    NSLog(@"Temps Array : %@",arrayTemps);

在我的职能中:

-(NSNumber *)numberForPlot:(CPPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 
{
    NSNumber *num = nil;
    if ( [plot isKindOfClass:[CPBarPlot class]] ) {
        switch ( fieldEnum ) {
            case CPBarPlotFieldBarLocation:
                //num = [NSNumber numberWithUnsignedInteger:index];
                num = (NSNumber *)[NSNumber numberWithUnsignedInteger:[[arrayTemps objectAtIndex:index] unsignedIntegerValue]];
                break;
            case CPBarPlotFieldBarLength:
                num = (NSNumber *)[NSNumber numberWithUnsignedInteger:[[arrayTemperature objectAtIndex:index] unsignedIntegerValue]];
            break;
        }
    }


    return num;
}