这里的曲线指的是弧线和折线
原始DEMO:http://code4app.com/ios/MPPlot/53bb95cb933bf01f688b4d22
本文DEMO:http://download.csdn.net/detail/u012881779/9414468
需求:
横坐标+纵坐标+曲线,最后还要对曲线和横坐标所夹住区域加填充色。
好了,本文主要就是上面这部分内容,参照demo。
示意代码:
#import "HomeViewController.h"
#import "DMChartViewController.h"
@interface HomeViewController ()
@property (strong, nonatomic) DMChartViewController *chart;
@end
@implementation HomeViewController
@synthesize chart = _chart;
//图表一
- (IBAction)appearChartAction:(id)sender {
if(!_chart){
_chart = [[DMChartViewController alloc] initWithNibName:@"DMChartViewController" bundle:nil];
}
_chart.view.frame = CGRectMake(0, 60, [UIScreen mainScreen].bounds.size.width, 250);
//values与abscissas传值个数一样,是一一对应的关系
_chart.values = [[NSArray alloc] initWithObjects:@"20",@"44",@"35",@"40",@"55",@"70",@"66", nil];
_chart.abscissas = [[NSArray alloc] initWithObjects:@"周一",@"周二",@"周三",@"周四",@"周五",@"周六",@"周日", nil];
_chart.ordinates = [[NSArray alloc] initWithObjects:@"0",@"11",@"22",@"33",@"44",@"55",@"66",@"77",@"88",@"99", nil];
UIColor *tempColor = [UIColor colorWithRed:140/255.0 green:80/255.0 blue:70/255.0 alpha:1];
_chart.fillColors = [[NSArray alloc] initWithObjects:tempColor,tempColor, nil];
_chart.graphColor = [UIColor redColor];
_chart.curved = YES;
_chart.allLabAppear = YES;
_chart.labFontSize = 12;
_chart.allMarkLabSzie = CGSizeMake(28, 16);
_chart.ordinateMaxHeight = [self getMaxHeightFrome:_chart.ordinates];
[self.view addSubview:_chart.view];
}
//获取最大的纵坐标
-(float)getMaxHeightFrome:(NSArray *)theArr{
float tempFlot = 0;
for (int i = 0; i < theArr.count ; i ++) {
//纵坐标这里传的是整型或浮点型,
id tempobj = [theArr objectAtIndex:i];
float objFloat = [tempobj floatValue];
if(objFloat > tempFlot){
tempFlot = objFloat;
}
}
return tempFlot;
}
@end
示意图:
显示出所有标签曲线图:
点击红点后弹出标签的折线图:
点击弹出提示的动态效果: