iOS之功能细节iOS之框架架构第三方库

PNChart用法

2016-09-02  本文已影响5608人  HuLL乐乐

#define MAIN_WIDTH [[UIScreen mainScreen] bounds].size.width

#define MAIN_HEIGHT [[UIScreen mainScreen] bounds].size.height

//1.PNCircleChart圆环=================================

//初始化圆环PNCircleChart最后一个初始化方法功能比较齐全

//total总圆100单位

//current占总圆的80单位

//clockwise顺时针方向YES

//shadow有阴影YES

//shadowColor阴影颜色greenColor

//displayCountingLabel是否显示计数标签YES

//overrideLineWidth圆环的宽20像素

PNCircleChart * circleChart = [[PNCircleChart alloc]initWithFrame:CGRectMake(0, 150, MAIN_WIDTH, 200) total:[NSNumber numberWithInt:100] current:[NSNumber numberWithInt:80] clockwise:YES shadow:YES shadowColor:[UIColor greenColor] displayCountingLabel:YES overrideLineWidth:[NSNumber numberWithInt:20]];

//设置颜色

[circleChart setStrokeColorGradientStart:[UIColor redColor]];

//开始画圆

[circleChart strokeChart];

//背景颜色

circleChart.backgroundColor = [UIColor yellowColor];

//Add

[self.view addSubview:circleChart];

//效果如下图

//2.PNLineChart折线图=================================

PNLineChart *lineChart = [[PNLineChart alloc]initWithFrame:CGRectMake(0, 150, MAIN_WIDTH, 300)];

//设置背景颜色

lineChart.backgroundColor = [UIColor yellowColor];

//设置坐标轴是否可见

lineChart.showCoordinateAxis = YES;

//设置是否显示网格线

lineChart.showYGridLines = YES;

//设置网格线颜色

lineChart.yGridLinesColor = [UIColor grayColor];

//设置X轴标签

lineChart.xLabels = @[@"魅族",@"华为",@"中兴",@"小米",@"苹果",@"一加",@"乐视"];

//设置坐标轴颜色

lineChart.axisColor = [UIColor blueColor];

//设置坐标轴宽度

lineChart.axisWidth = 2.0;

//Add

[self.view addSubview:lineChart];

//曲线数据1

PNLineChartData *data1 = [[PNLineChartData alloc]init];

//曲线颜色

data1.color = PNRed;

//曲线格式

data1.inflexionPointStyle = PNLineChartPointStyleCircle;

//设置数据(Y轴坐标根据数据的大小自动适应)

NSArray *dataArray1 = @[@4,@8,@7,@4,@19,@6,@5];

data1.itemCount = dataArray1.count;

data1.getData = ^(NSUInteger index){

CGFloat yValue = [dataArray1[index] floatValue];

return [ PNLineChartDataItem dataItemWithY:yValue];

};

//曲线数据2

PNLineChartData *data2 = [[PNLineChartData alloc]init];

//曲线颜色

data2.color = PNGreen;

//曲线格式

data2.inflexionPointStyle = PNLineChartPointStyleCircle;

//设置数据(Y轴坐标根据数据的大小自动适应)

NSArray *dataArray2 = @[@6,@15,@3,@12,@20,@16,@3];

data2.itemCount = dataArray2.count;

data2.getData = ^(NSUInteger index){

CGFloat yValue = [dataArray2[index] floatValue];

return [ PNLineChartDataItem dataItemWithY:yValue];

};

lineChart.chartData = @[data1,data2];

//开始绘图

[lineChart strokeChart];

//数据标注名称

data1.dataTitle = @"数据1标注名称";

data2.dataTitle = @"数据2标注名称";

//标注摆放样式

lineChart.legendStyle = PNLegendItemStyleSerial;

//标注字体

lineChart.legendFont = [UIFont boldSystemFontOfSize:12.0f];

//标注颜色

lineChart.legendFontColor = [UIColor redColor];

// 标示所在的View

UIView *legend = [lineChart getLegendWithMaxWidth:MAIN_WIDTH];

[legend setFrame:CGRectMake(0, 480, legend.frame.size.width, legend.frame.size.height)];

legend.backgroundColor = [UIColor yellowColor];

[self.view addSubview:legend];

//效果图如下

//3.PNBarChart柱状图=================================

PNBarChart *barChart = [[PNBarChart alloc] initWithFrame:CGRectMake(0, 150, MAIN_WIDTH, 300)];

barChart.backgroundColor = [UIColor yellowColor];

//Y坐标label宽度(微调)

barChart.yChartLabelWidth = 20.0;

barChart.chartMarginLeft = 30.0;

barChart.chartMarginRight = 10.0;

barChart.chartMarginTop = 5.0;

barChart.chartMarginBottom = 10.0;

//X坐标刻度的上边距

barChart.labelMarginTop = 2.0;

//是否显示坐标轴

barChart.showChartBorder = YES;

[barChart setXLabels:@[@"魅族",@"华为",@"中兴",@"小米",@"苹果",@"乐视"]];

[barChart setYValues:@[@20,@8,@5,@33,@16,@8]];

//每个柱子的颜色

[barChart setStrokeColors:@[PNGreen,PNRed,PNRed,PNRed,PNRed,PNRed]];

//    barChart.strokeColor = [UIColor redColor];

//是否立体效果

barChart.isGradientShow = NO;

//显示各条状图的数值

barChart.isShowNumbers = YES;

//开始绘图

[barChart strokeChart];

barChart.delegate = self;

//Add

[self.view addSubview:barChart];

//效果图如下

//4.PNPieChart圆饼图=================================

//圆饼数据

NSArray *items = @[[PNPieChartDataItem dataItemWithValue:30 color:PNRed],

[PNPieChartDataItem dataItemWithValue:10 color:PNFreshGreen description:@"绿色"],

[PNPieChartDataItem dataItemWithValue:60 color:PNBlue description:@"蓝色"],

];

//PNPieChart初始化

PNPieChart *pieChart = [[PNPieChart alloc] initWithFrame:CGRectMake(SCREEN_WIDTH /2 - 100, 150, 200, 200) items:items];

pieChart.backgroundColor = [UIColor yellowColor];

//扇形上字体颜色

pieChart.descriptionTextColor = [UIColor whiteColor];

pieChart.descriptionTextFont  = [UIFont fontWithName:@"Avenir-Medium" size:11.0];

// 阴影颜色

pieChart.descriptionTextShadowColor = [UIColor yellowColor];

//显示实际数值(不显示比例数字)

pieChart.showAbsoluteValues = YES;

// 只显示数值不显示内容描述

pieChart.showOnlyValues = NO;

//开始绘图

[pieChart strokeChart];

//Add

[self.view addSubview:pieChart];

// 标注排放样式

pieChart.legendStyle = PNLegendItemStyleStacked;

pieChart.legendFont = [UIFont boldSystemFontOfSize:12.0f];

UIView *legend = [pieChart getLegendWithMaxWidth:200];

[legend setFrame:CGRectMake(130, 350, legend.frame.size.width, legend.frame.size.height)];

[self.view addSubview:legend];

//效果图如下

//5.PNRadarChart无线电图=================================

//View背景颜色

self.view.backgroundColor = [UIColor yellowColor];

NSArray *items = @[[PNRadarChartDataItem dataItemWithValue:6 description:@"语文"],

[PNRadarChartDataItem dataItemWithValue:20 description:@"数学"],

[PNRadarChartDataItem dataItemWithValue:8 description:@"英语"],

[PNRadarChartDataItem dataItemWithValue:5 description:@"体育"],

[PNRadarChartDataItem dataItemWithValue:9 description:@"美术"],

[PNRadarChartDataItem dataItemWithValue:4 description:@"其他的"]

];

PNRadarChart *radarChart = [[PNRadarChart alloc] initWithFrame:CGRectMake(0, 150, SCREEN_WIDTH, 300.0) items:items valueDivider:2];

//开始绘图

[radarChart strokeChart];

//Add

[self.view addSubview:radarChart];

//效果图如下

//

上一篇下一篇

猜你喜欢

热点阅读