写在前面

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

开始使用

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

  1. @property (strong, nonatomic) PNLineChart *lineChart;

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

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

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

  1. //曲线数据
  2. PNLineChartData *data = [PNLineChartData new];
  3. //数据点颜色
  4. data.color = PNGreen;
  5. //数据点格式
  6. data.inflexionPointStyle = PNLineChartPointStyleCircle;
  7. //设置数据标注名称
  8. data.dataTitle = @"周收入";
  9. //设置X轴标签
  10. NSArray *xLabels = @[@"07-04",@"07-05",@"07-06",@"07-07",@"07-08",@"07-09",@"07-10"];
  11. [self.lineChart setXLabels:xLabels];
  12. //设置Y轴数据
  13. NSArray *dataArray = @[@4,@8,@7,@4,@9,@6,@5];
  14. data.itemCount = dataArray.count;
  15. data.getData = ^(NSUInteger index){
  16. CGFloat yValue = [dataArray[index] floatValue];
  17. return [ PNLineChartDataItem dataItemWithY:yValue];
  18. };
  19. self.lineChart.chartData = @[data];
  20. //绘制曲线
  21. [self.lineChart strokeChart];
  22. //设置标注
  23. self.lineChart.legendStyle = PNLegendItemStyleStacked;//标注摆放样式
  24. self.lineChart.legendFont = [UIFont boldSystemFontOfSize:12.0f];
  25. [self.legend removeFromSuperview];
  26. self.legend = [self.lineChart getLegendWithMaxWidth:200];
  27. CGFloat legendX = self.left + 30;
  28. CGFloat legendY = self.bottom - 40;
  29. [self.legend setFrame:CGRectMake(legendX, legendY, self.legend.frame.size.width, self.legend.frame.size.height)];
  30. [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. spring校验注解

    @Null   被注释的元素必须为 null @NotNull    被注释的元素必须不为 null @AssertTrue     被注释的元素必须为 true @AssertFalse    被注 ...

  2. 第一模块:python基础语法

    Python基础[day01]:python介绍发展史(一) Python基础[day01]:Hello World程序(二) Python基础[day01]:表达式if ...else语句(三) P ...

  3. 多目标遗传算法 ------ NSGA-II (部分源码解析)两个个体支配判断 dominance.c

    /* Domination checking routines */ # include <stdio.h> # include <stdlib.h> # include &l ...

  4. 部署flask

    部署 当我们执行下面的hello.py时,使用的flask自带的服务器,完成了web服务的启动.在生产环境中,flask自带的服务器,无法满足性能要求,我们这里采用Gunicorn做wsgi容器,来部 ...

  5. Java编程思想 学习笔记0(忽略)

    前言 emmm...博客荒废了好久,总是有各种借口拖延,做的许多题都没有总结.买了一本厚厚的java书,所以决定先新开一个专题,逼迫自己坚持更新学习进度吧,同时也巩固一下知识,做个记录,不至于荒废时光 ...

  6. hashmap和hashtable异同

    (一)继承的历史不同 Hashtable是继承自Dictionary类的,而HashMap则是Java 1.2引进的Map接口的一个实现. public class Hashtable extends ...

  7. 从零开始搭建Salt Web之初探salt-api

    Salt-API入门 在Google搜索栏输入salt-api,会有一些讲述如何使用Salt-API的文章,确实有效,不过都是建立 在将Salt安装在默认目录下的情况下,即通过apt-get inst ...

  8. postgresql 随机函数

    随机函数 --function to get random number============================================================= -- ...

  9. 一个奇怪的SystemClock_Config问题解决方法

    一直在SystemClock_Config程序死掉,然后下载最新的STm32Cube从新创建项目成功了.

  10. CopyFromScreen在屏幕缩放情况下需要做处理

    using System; using System.Drawing; using System.Runtime.InteropServices; //这段代码转自网上 namespace Syste ...