PNChart,简洁高效有动画效果的iOS图表库
2024-08-25 16:35:36
导入
pod导入相对简单,要手动导入这个库,先下载下来(https://github.com/kevinzhow/PNChart),解压后把PNChart文件夹拖入工程中
运行发现#import"PNRadarChartDataItem.h"报红,在它的.h文件里引入#import<UIKit/UIKit.h>头文件;#import<UICountingLabel/UICountingLabel.h>报错,下载UICountingLabel(https://github.com/dataxpress/UICountingLabel)解压后把UICountingLabel的.m和.h文件拖入工程,把报错的#import<UICountingLabel/UICountingLabel.h>头文件换为#import"UICountingLabel.h"
项目中引用头文件#import"PNChart.h"
折线图
PNLineChart * lineChart = [[PNLineChartalloc]initWithFrame:CGRectMake(0,135.0,SCREEN_WIDTH,200.0)];
//X轴数据
[lineChart setXLabels:@[@"SEP 1",@"SEP 2",@"SEP 3",@"SEP 4",@"SEP 5"]];
//Y轴数据
NSArray * data01Array =@[@60.1,@160.1,@126.4,@262.2,@186.2];
PNLineChartData *data01 = [PNLineChartDatanew];
data01.color = PNFreshGreen;
data01.itemCount = lineChart.xLabels.count;
data01.getData = ^(NSUInteger index) {
CGFloat yValue = [data01Array[index] floatValue];
return [PNLineChartDataItemdataItemWithY:yValue];
};
//可以添加多条折线
NSArray * data02Array =@[@20.1,@180.1,@26.4,@202.2,@126.2];
PNLineChartData *data02 = [PNLineChartDatanew];
data02.color = PNTwitterColor;
data02.itemCount = lineChart.xLabels.count;
data02.getData = ^(NSUInteger index) {
CGFloat yValue = [data02Array[index] floatValue];
return [PNLineChartDataItemdataItemWithY:yValue];
};
lineChart.chartData = @[data01, data02];
[lineChart strokeChart];
//加载在视图上
[self.windowaddSubview:lineChart];
柱状图
PNBarChart * barChart = [[PNBarChartalloc]initWithFrame:CGRectMake(0,135.0,SCREEN_WIDTH,200.0)];
//X轴数据
[barChart setXLabels:@[@"SEP 1",@"SEP 2",@"SEP 3",@"SEP 4",@"SEP 5"]];
//Y轴数据
[barChart setYValues:@[@1, @10,@2,@6,@3]];
[barChart strokeChart];
//加载在视图上
[self.windowaddSubview:barChart];
饼状图
PNPieChart *pieChart = [[PNPieChartalloc]initWithFrame:CGRectMake(40.0,155.0,240.0,240.0)items:items];
//饼状图文字颜色
pieChart.descriptionTextColor = [UIColorwhiteColor];
pieChart.descriptionTextFont = [UIFontfontWithName:@"Avenir-Medium"size:14.0];
//绘制
[pieChart strokeChart];
//加载在视图上
[self.windowaddSubview:pieChart];
圆形进度条
// total参数是进度条的总数据量,current是当前的数据量,closewise是绘制方向,YES是从左到右,NO为从右到左
PNCircleChart *circleChart = [[PNCircleChartalloc]initWithFrame:CGRectMake(40.0,155.0,240.0,240.0)total:@100current:@30clockwise:NO];
//绘制图形
[circleChart strokeChart];
//加载在视图上
[self.windowaddSubview:circleChart];
注: 文章由我们 iOS122(http://www.ios122.com)的小伙伴 @偌一茗
整理,喜欢就一起参与: iOS122 任务池
最新文章
- 推荐一个算法编程学习中文社区-51NOD【算法分级,支持多语言,可在线编译】
- 调用MyFocus库,简单实现二十几种轮播效果
- Android程序意外Crash后自动重启
- Yii2.0 实现的短信发送
- 【hihoCoder】1049.后序遍历
- 您的服务器没有安装这个PHP扩展:OpenSSL(其他平台API同步需要)
- python:配置文件configparser
- 2014 IGF 评选(转)
- 企业应用架构模式阅读笔记 - Martin Fowler
- Python读写文件的路径,关于os.chdir(path)位置对程序的影响,
- [Swift]LeetCode754. 到达终点数字 | Reach a Number
- python学习日记(OOP访问限制)
- 20175208 《Java程序设计》第九周学习总结
- CentOS上安装 Docker-CE以及Docker 加速器配置
- EF连接Sqlserver2014,使用DBGeography时提示无法加载sqlserverspatial.dll
- sql_id VS hash_value
- 批量替换url,指定内容不替换
- struts2漏洞原理
- Excel录入中实现单元格多选项自动下拉
- CentOS 7下安装pptp服务端手记 ok
热门文章
- LeetCode 110.平衡二叉树(C++)
- c语言中的隐式函数声明(转)
- linux下文件比对功能
- c++隐式类型转换和explicit
- 动态行转列 pivot实现
- ArcGisJS的layers-add-result事件总结
- 【起航计划 026】2015 起航计划 Android APIDemo的魔鬼步伐 25 App->;Notification->;Status Bar 状态栏显示自定义的通知布局,省却声音、震动
- 青石B2C商城
- python标准库 - socket
- 计算结构体、数组、指针的sizeof