写在前面

上一篇文章已经介绍过用PNChart绘制饼状图了,绘制折线图的步骤和饼状图的步骤是相似的,按照中的准备做好准备工作后就可以绘制折线图了。

开始使用

1、在view中声明一个PNLineChart类型的属性 lineChart

@property (strong, nonatomic) PNLineChart *lineChart;

2、在view的初始化函数中对lineChart进行初始化

//初始化
_lineChart = [[PNLineChart alloc] initWithFrame:CGRectMake(self.left, self.top + 40, self.width*2, self.height)];
//设置背景颜色
_lineChart.backgroundColor = [UIColor clearColor];
//设置坐标轴是否可见
_lineChart.showCoordinateAxis = YES;
//设置是否显示网格线
_lineChart.showYGridLines = YES;
//设置网格线颜色
_lineChart.yGridLinesColor = [UIColor grayColor];
//添加到view的试图上
[self addSubviews:_lineChart];

3、设置折线图的横轴标签和数据

 //曲线数据
PNLineChartData *data = [PNLineChartData new];
//数据点颜色
data.color = PNGreen;
//数据点格式
data.inflexionPointStyle = PNLineChartPointStyleCircle; //设置数据标注名称
data.dataTitle = @"周收入"; //设置X轴标签
NSArray *xLabels = @[@"07-04",@"07-05",@"07-06",@"07-07",@"07-08",@"07-09",@"07-10"];
[self.lineChart setXLabels:xLabels]; //设置Y轴数据
NSArray *dataArray = @[@4,@8,@7,@4,@9,@6,@5];
data.itemCount = dataArray.count;
data.getData = ^(NSUInteger index){
CGFloat yValue = [dataArray[index] floatValue];
return [ PNLineChartDataItem dataItemWithY:yValue];
}; self.lineChart.chartData = @[data];
//绘制曲线
[self.lineChart strokeChart]; //设置标注
self.lineChart.legendStyle = PNLegendItemStyleStacked;//标注摆放样式
self.lineChart.legendFont = [UIFont boldSystemFontOfSize:12.0f];
[self.legend removeFromSuperview];
self.legend = [self.lineChart getLegendWithMaxWidth:200];
CGFloat legendX = self.left + 30;
CGFloat legendY = self.bottom - 40;
[self.legend setFrame:CGRectMake(legendX, legendY, self.legend.frame.size.width, self.legend.frame.size.height)]; [self addSubview:self.legend];

绘制结果

总结

整理出来的时候感觉还是挺容易的,网上也有很多相应的教程,但在实际使用的时候还是挺多波折的。也许是基础的使用不难,但要根据自己的需求做一定的改动的时候,就会变得不那么容易了,因此这也是我觉得比较有感触的地方吧,不能简单的照搬网上已有的代码,哪怕网上已有的代码和自己想要的效果和相似,也有先单独建立一个空白的项目测试一下,不要一开始就直接将搜索带的代码添加到自己的项目中,否者出现问题的时候,要排查是由于新加入的代码引起的错误,还是原本的项目中的代码引起的错误就会变得困难。建立空白项目来测试新代码还有一个好处就是可以比较快的理解整个代码的流程。

总而言之,继续努力啦~

用PNChart绘制折线图的更多相关文章

  1. 用canvas绘制折线图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. php中用GD绘制折线图

    php中用GD绘制折线图,代码如下: Class Chart{ private $image; // 定义图像 private $title; // 定义标题 private $ydata; // 定 ...

  3. UUChart的使用--iOS绘制折线图

    UUChart是一个用于绘制图表的第三方,尤其适合去绘制折线图. 二.下载地址: https://github.com/ZhipingYang/UUChartView 三.使用 第一步.首先我们将下载 ...

  4. html5绘制折线图

    html5绘制折线图详细代码 <html> <canvas id="a_canvas" width="1000" height="7 ...

  5. Android自己定义组件系列【9】——Canvas绘制折线图

    有时候我们在项目中会遇到使用折线图等图形,Android的开源项目中为我们提供了非常多插件,可是非常多时候我们须要依据详细项目自己定义这些图表,这一篇文章我们一起来看看怎样在Android中使用Can ...

  6. JFreeChart绘制折线图实例

    JFreeChart是JAVA平台上的一个开放的第三方图表绘制类库.只要下载JFreeChart的类库,导入项目即可使用.下面是一个绘制折线图的实例.各处注释都已经写的比较清晰了. package c ...

  7. 【带着canvas去流浪】(2)绘制折线图

    目录 一. 任务说明 二. 重点提示 三. 示例代码 3.1 一般折线图 3.2 用贝塞尔曲线绘制平滑折线图 四. 大数据量场景 示例代码托管在:https://github.com/dashnowo ...

  8. python使用matplotlib绘制折线图教程

    Matplotlib是一个Python工具箱,用于科学计算的数据可视化.借助它,Python可以绘制如Matlab和Octave多种多样的数据图形.下面这篇文章主要介绍了python使用matplot ...

  9. Android自定义控件 -Canvas绘制折线图(实现动态报表效果)

    有时候我们在项目中会遇到使用折线图等图形,Android的开源项目中为我们提供了很多插件,但是很多时候我们需要根据具体项目自定义这些图表,这一篇文章我们一起来看看如何在Android中使用Canvas ...

随机推荐

  1. Hadoop生态圈-Cloudera Manager的基本使用

    Hadoop生态圈-Cloudera Manager的基本使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1>.ClouderaManager功能 1.1>.管理监 ...

  2. 6、Python-元组

    定义 # Python的元组与列表类似,不同之处在于元组的元素不能修改.元组使用小括号,列表使用方括号. aTuple = ('et',77,99.9) print(aTuple) 元组的操作 aTu ...

  3. Spring RMI (Spring 远程方法调用)【原】

    所需jar包...?    不纠结,一股脑儿全导! 源码地址:http://pan.baidu.com/s/1jG8eOmy 先放结构图如下,客户端和服务端都在一个项目中.也可以把服务端的xxx导成j ...

  4. BigDecimal最基础用法【转】

    BigDecimal最基础用法 用字符串生成的BigDecimal是不会丢精度的. 简单除法. public class DemoBigDecimal { public static void mai ...

  5. 51Nod-1436 方程的解数

    题目链接  题解链接 版权属于以上链接 #include <iostream> #define mod(a, m) ((a) % (m) + (m)) % (m) using namesp ...

  6. spring boot(十):定时任务

    springboot默认已经帮我们实行了,只需要添加相应的注解就可以实现. 1.pom包配置 <dependency> <groupId>org.springframework ...

  7. C# cmd调用外部命令

    void test2() { Process process = new Process(); //C:\\Users\\Administrator\\Desktop\\ffmpeg\\bin\\ff ...

  8. 日期与时间控件QDate, QTime, QDateTime

    QDate类用于处理公历日期.QTime类用于处理时间.QDateTime类将QDate对象和QTime对象整合为一个对象 QDate: from PyQt5.QtCore import QDate, ...

  9. [USACO]地震 (二分答案+最优比率生成树详解)

    题面:[USACO 2001 OPEN]地震 题目描述: 一场地震把约翰家的牧场摧毁了, 坚强的约翰决心重建家园. 约翰已经重建了N个牧场,现在他希望能修建一些道路把它们连接起来.研究地形之后,约翰发 ...

  10. python线程之condition

    cond = threading.Condition() # 类似lock.acquire() cond.acquire() # 类似lock.release() cond.release() # 等 ...