前言
charts是一款图形绘制框架,可以绘制折线图、柱状图、k线图、饼状图、雷达图等。上一篇文章我们讲了一下这个框架怎么集成到项目中(iOS-在OC项目中集成Charts图形绘制框架)。下面我们将介绍怎么使用这个框架。
折线图
//绘制折现图
+(LineChartView *)drawLineChartWithFrame:(CGRect)frame delegate:(id)delegate charts:(NSArray *)charts chartsLabel:(NSString *)chartsLabel{
LineChartView *view = [[LineChartView alloc]initWithFrame:frame];
view.delegate = delegate;
NSMutableArray *graphs = [NSMutableArray array];
for (int i = 0; i
NSArray *values = [self getLineDataEntriesWithChart:charts[i]];
LineChartDataSet *dataSet = [[LineChartDataSet alloc] initWithValues:values label:charts[i].label];
dataSet.colors = charts[i].colors;
//设置相关属性
[graphs addObject:dataSet];
}
LineChartData *chartData = [[LineChartData alloc] initWithDataSets:graphs];
// ChartLimitLine *chartLimit = [[ChartLimitLine alloc] initWithLimit:60];
// [view.rightAxis addLimitLine:chartLimit];
view.data = chartData;
view.chartDescription.text = chartsLabel;
[view animateWithYAxisDuration:0.5 easingOption:ChartEasingOptionEaseInBounce];
[self setLineChartsUI:view];
return view;
}
+(LineChartView *)drawLineChartWithFrame:(CGRect)frame delegate:(id)delegate chart:(HJChartsGraphModel *)chart chartsLabel:(NSString *)chartsLabel{
LineChartView *view = [[LineChartView alloc]initWithFrame:frame];
view.delegate = delegate;
LineChartDataSet *dataSet = [[LineChartDataSet alloc] initWithValues:[self getLineDataEntriesWithChart:chart] label:chart.label];
dataSet.colors = chart.colors;
LineChartData *chartData = [[LineChartData alloc] initWithDataSet:dataSet];
view.data = chartData;
view.chartDescription.text = chartsLabel;
[view animateWithYAxisDuration:0.5 easingOption:ChartEasingOptionEaseInBounce];
return view;
}
+(NSMutableArray *)getLineDataEntriesWithChart:(HJChartsGraphModel *)chart{
NSMutableArray *dataEntries = [NSMutableArray array];
for (int i = 0; i
HJChartsEntryModle *modle = chart.entries[i];
UIImage *image = modle?[UIImage imageNamed:modle.iconName]:nil;
ChartDataEntry *entry = [[ChartDataEntry alloc] initWithX:modle.x y:modle.y icon:image data:modle.data];
[dataEntries addObject:entry];
}
return dataEntries;
}
其中HJChartsGraphModel一条图形的对象模型
#import "HJBasicModle.h"
#import "HJChartsEntryModle.h"
#import
@interface HJChartsGraphModel : HJBasicModle
//数据元素数组
@property (nonatomic,strong) NSArray *entries;
//图形描述
@property (nonatomic,copy) NSString *label;
//图形分段颜色,一个则为单色
@property (nonatomic,strong) NSArray *colors;
@end
数据元素数组为每条图形每个点的数组,其中每个点用模型(HJChartsEntryModle)表示
#import "HJBasicModle.h"
@interface HJChartsEntryModle : HJBasicModle
//****折线图部分****
//包括X 、Y、data、iconName
-(instancetype)initWithLineX:(double)X Y:(double)Y iconName:(NSString *)iconName data:(id)data;
-(instancetype)initWithLineX:(double)X Y:(double)