文档章节

PNChart

麦兜卖鱼丸
 麦兜卖鱼丸
发布于 2015/12/16 15:29
字数 401
阅读 924
收藏 5

行业解决方案、产品招募中!想赚钱就来传!>>>

一、项目需要实现图表(折线图)的功能,由于IOS并没有原生的控件可以开发图表,经在网络上搜索决定使用PNChart第三方库实现折线图的功能,PNChart还可以创建柱状图、饼图、圆形进度条等图表视图,我就不再一一的举例实现相关的视图。

(1)创建一个折线图;

//折线图
    self.lineChart = [[PNLineChart alloc] initWithFrame:CGRectMake(0, 30, [UIScreen mainScreen].bounds.size.width, 200)];
    self.lineChart.legendStyle = PNLegendItemStyleStacked;
    self.lineChart.delegate = self;
    
    self.lineChart.showCoordinateAxis = YES; //显示坐标系
    self.lineChart.showGenYLabels = YES;
    self.lineChart.showLabel = YES;
    self.lineChart.thousandsSeparator = YES;
    
    
    [self.lineChart setXLabels:@[@"1月",@"2月",@"3月",@"4月",@"5月",@"6月",@"7月",@"8月",@"9月",@"10月",@"11月",@"12月"]];
    NSArray *data01Array = @[@60.1, @160.1, @126.4, @262.2, @186.2, @60.1, @160.1, @126.4, @262.2, @186.2, @60.1, @160.1];
    
    PNLineChartData *data01 = [PNLineChartData new]; //chart数据
    data01.dataTitle = @"Alpha";
    data01.color = PNFreshGreen; //折线的颜色
    data01.itemCount = self.lineChart.xLabels.count; //x轴坐标item数
    data01.inflexionPointStyle = PNLineChartPointStyleCircle; //数值点的样式
    
    data01.getData = ^(NSUInteger index) {
        
        CGFloat yValue = [data01Array[index] floatValue];
        return [PNLineChartDataItem dataItemWithY:yValue];
    };
    
    self.lineChart.chartData = @[data01];
    [self.lineChart strokeChart]; //画折线,带动画
    
    
//PNChartDelegate委托的实现  
- (void)userClickedOnLinePoint:(CGPoint)point lineIndex:(NSInteger)lineIndex {
    
    NSLog(@"Click on line %f, %f, line index is %d",point.x, point.y, (int)lineIndex);
}


- (void)userClickedOnLineKeyPoint:(CGPoint)point lineIndex:(NSInteger)lineIndex pointIndex:(NSInteger)pointIndex {
    
    NSLog(@"Click Key on line %f, %f line index is %d and point index is %d",point.x, point.y,(int)lineIndex, (int)pointIndex);
    
    //在这个位置弹出逻辑
}


(2)更新折线图的数据;

你可以创建一个更新的按钮或者是一些选项卡来更新lineChart的内容;

//更新折线的数据
- (void)updateView {
    
    NSArray *data01Array = @[@80.1, @180.1, @126.4, @292.2, @186.2, @80.1, @160.1, @126.4, @262.2, @186.2, @80.1, @160.1];
    
    PNLineChartData *data01 = [PNLineChartData new];
    data01.dataTitle = @"Alpha";
    data01.color = PNFreshGreen;
    data01.itemCount = self.lineChart.xLabels.count;
    data01.inflexionPointStyle = PNLineChartPointStyleCircle;
    
    data01.getData = ^(NSUInteger index) {
        
        CGFloat yValue = [data01Array[index] floatValue];
        return [PNLineChartDataItem dataItemWithY:yValue];
    };
    
    [self.lineChart updateChartData:@[data01]];
    [self.lineChart strokeChart];
}

折线图效果:

上一篇: 自定义tabBar
下一篇: UILocalNotification
麦兜卖鱼丸
粉丝 12
博文 69
码字总数 69333
作品 0
桂林
iOS工程师
私信 提问
加载中
请先登录后再评论。
iOS 图表库--PNChart

实现效果不错的曲线图和柱状图,可以动态生成图表。 [Code4App.com]

彭博
2013/11/08
5.5K
0
PNChart,简洁高效有动画效果的iOS图表库

导入 pod导入相对简单,要手动导入这个库,先下载下来(https://github.com/kevinzhow/PNChart),解压后把PNChart文件夹拖入工程中 运行发现#import"PNRadarChartDataItem.h"报红,在它的....

ios122
2015/11/06
4.1K
5
PNChart中 折线图LineChart里面的 Legend是 什么❓

Legend是 什么?感觉完全没用的方块

goyoho1
2016/10/31
153
0
借花献佛: 43个优秀的Swift开源项目推荐

来自: CSDN 拥有着苹果先天生态优势的 Swift 自发布以来,各种优秀的开源项目便层出不穷。本文作者站在个人的角度,将 2014 年 Swift 开源项目做了一个甄别、筛选,从工具、存储、网络、界面...

nzchris
2015/01/14
547
7
优秀Swift开源项目推荐

工具类 SwiftyJSON:GitHub上最为开发者认可的JSON解析类 Safe.ijaimi:源码漏洞分析检测工具,一键完成 Dollar.swift:Swift版Lo-Dash(或underscore)函数式工具库 OAuthSwift:国外主流网站...

拉偶有所依
2015/01/14
1.6K
0

没有更多内容

加载失败,请刷新页面

加载更多

数据获取的小技巧

在大数据如此火的时代,我们要获取更多数据,就要进行数据采集,过滤,然后再进行使用。比如当我们在进行一个项目并且需要大量真实数据时,就需要通过爬虫去获得,有些爬取额数据还不能直接使用,...

xiaotaomi7
21分钟前
21
0
docker cp 容器和虚拟机间的数据拷贝

容器复制到主机 docker cp {container_name}:{source_path} {target_path}#例子: docker cp php:www/php.ini /home/alex/php.ini 主机复制到容器 docker cp {source_path} {container_nam......

关元
29分钟前
25
0
spring boot整合kafaka批量消费

spring boot整合kafaka批量消费: 配置文件: kafka: producer: bootstrap-servers: 127.0.0.1:9092 batch-size: 16785 #一次最多发送数据量 retries: 1 #发送失败后的重复发送次数 buffer-m...

漫步行者
34分钟前
7
0
最新苹果多屏电脑控制技术---ios群控/苹果群控/一键实时同步操作/入门安装步骤以及功能讲解

创联苹果群控是一款通过无线发送命令来操作主控手机来带动全部被控手机,主控手机怎么操作被控手机全部同步进行相同操作,支持一键每台手机输入不一样的文字!无需连接USB数据线、无需XP框架...

osc_bodzcw38
34分钟前
10
0
NOIP模拟赛 编码

题目描述 一个字符串str的p型编码a的定义如下:把str表示成b1个c1,b2个c2…bn个cn,然后将b1,c1,b2,c2,…,bn,cn收尾拼接成的字符串中最短的字符串设为a。例如:字符串122344111可被描述为"1个...

osc_wcs4pa6z
35分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部