简体   繁体   中英

how to show percentage ration with pie chart in iphone app

I am creating a pie chart in iphone app it gets 4 values from array then creates pie chart it shows pie chart filled with separate colors i also want that it must show percent for each part like if 1 is 15% then 15% 35% and 35% like this i am using following code for creating pie chart.

below is the Pie Class implementation

  - (void)drawRect:(CGRect)rect
{

   int c=[itemArray count];

   CGFloat angleArray[c];
   CGFloat offset;
   int sum=0;

   CGContextRef context = UIGraphicsGetCurrentContext();


  CGContextSetAllowsAntialiasing(context, false);
  CGContextSetShouldAntialias(context, false);
   for(int i=0;i<[itemArray count];i++)

    {


    sum+=[[itemArray objectAtIndex:i] intValue];


}


   for(int i=0;i<[itemArray count];i++)

   {

    angleArray[i]=(float)(([[itemArray objectAtIndex:i] intValue])/(float)sum)*(2*3.14); // in radians
    CGContextMoveToPoint(context, radius, radius);
    if(i==0)
        CGContextAddArc(context, radius, radius, radius, 0,angleArray[i], 0);
    else
        CGContextAddArc(context, radius, radius, radius,offset,offset+angleArray[i], 0);
    offset+=angleArray[i];


    CGContextSetFillColorWithColor(context, ((UIColor *)[myColorArray objectAtIndex:i]).CGColor);
    CGContextClosePath(context); 
    CGContextFillPath(context);



    }



   }


   -(void)createGraph{

PieClass *myPieClass=[[PieClass alloc]initWithFrame:CGRectMake(10,440,230,200)];

myPieClass.backgroundColor=[UIColor clearColor];

myPieClass.itemArray=[[NSArray alloc]initWithObjects:valueOne,valueTwo,valueThree,valueFour, nil];

myPieClass.myColorArray=[[NSArray alloc]initWithObjects:[UIColor blueColor],[UIColor redColor],[UIColor greenColor],[UIColor brownColor], nil];

myPieClass.radius=100;

[self.view addSubview:myPieClass];

}

here is the link to the source code for pie chart with % ratio display. This will help you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM