2016.05.15 iOS开发笔记之RadarChart(雷达图)
- 这也我们产品提的一个较为奇葩的需求, 一开始接到,几乎是抓狂的,为啥会提出这种需求...让人想不通...
毕竟比较新鲜,也想去尝试下,所以硬着头皮接下了...
就目前而言,我只发现2个第三方类库有实现这种雷达图的,一个是JYRadarChart
(专门搞雷达图的),另一个是Charts
(各类图表)...
这里我使用的是JYRadarChart
,介绍一下使用方法:
以下是Demo代码:
#import "ViewController.h"
#import "JYRadarChart.h"
@interface ViewController ()
{
JYRadarChart *p1;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
p1 =[[JYRadarChart alloc]initWithFrame:CGRectMake(0, 20, 375, 375)];
//得分
NSArray *arr1 = @[@(90),@(80),@(72),@(80),@(75),@(76),@(80),@(85),@(83),@(88),@(90),@(86)];
//满分是多少分(100分) 标准分
NSArray *arr2 =@[@(100),@(100),@(100),@(100),@(100),@(100),@(100),@(100),@(100),@(100),@(100),@(100)];
//设置数据列 两个数组的位置可以互换,也可以有多个蜘蛛网,多个评分或者评分标准,但至少保证一个为标准,而另一个或者其他,以此为参照作比较 它们之间的差值就是蜘蛛网之间的间距...
p1.dataSeries=@[arr1,arr2];
//表中圆圈个数
p1.steps=2;
//背景色
p1.backgroundColor=[UIColor whiteColor];
/**
你可以自己设置半径的最大值和最小值,但是如果你r值不填,
minvalue(默认为0),maxvalue(默认为100)都保持默认也没有问
题,值如果太大,将会不在图表的范围内,因此将看不到
*/
p1.r=100;
p1.minValue=0;
p1.maxValue=100;
//你可以选择是否填充区域,还是只画线条
p1.fillArea=YES;
//可以指定透明度, 默认是1.0 (不透明)
p1.colorOpacity=0.7;
//说明性的文字 百分比啊 占比重什么的... 和前面的数组相关联
p1.attributes=@[@"90分",@"80分",@"72分",@"80分",@"75分",@"76分",@"80分",@"85分",@"83分",@"88分",@"90分",@"86分"];
//
//如果你不需要图例的话,可以让它不显示
p1.showLegend=YES;
//由里到外 蜘蛛网所表示的内容标题 /标识
[p1 setTitles:@[@"评分",@"总分"]];
//蜘蛛网由里到外的颜色
[p1 setColors:@[[UIColor orangeColor],[UIColor colorWithRed:1.0 green:0.3248 blue:0.8158 alpha:1.0]]];
[self.view addSubview:p1];
}
@end
简单实现之后,效果图:
写的Demo,挫了点,真正开发时进行优化,还是可以的,模拟的都是假数据.