ciwol
ciwol

Reputation: 355

Insert datas in core-plot

I'm a beginner in core-plot. I want to use core-plot in my app, to display datas that I get from a distant database. I can put the datas I want to use in Arrays, but I don't know how to use this Arrays to modify my graphic.

I have watch on the core-plot google site (http://code.google.com/p/core-plot/) and on stack overflow but I couldn't find something that help me.

This is what the graphic is displaying, and I want to use my Arrays to insert my datas in the graph-plot.

EDITED:

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

I also tried:

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

                }

If someone has an idea about how to use Arrays, or an other idea to deal with this please let me know.

Upvotes: 0

Views: 1299

Answers (2)

ciwol
ciwol

Reputation: 355

So i finally solved my problem If anyone is interesting here is how I did:

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

and in my function:

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

Upvotes: 0

Eric Skroch
Eric Skroch

Reputation: 27381

Assuming arrayTemperature is an array of NSNumbers (or NSDecimalNumbers), this will work. Your array can contain [NSNull null] to represent missing values as well.

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

Upvotes: 1

Related Questions