swift 出来后有很多优秀的第三方绘图、动画框架,最近项目需要使用了 Charts 
Github: https://github.com/danielgindi/Charts

因为是在Object-c工程上使用,所以使用cocoapod 工具导入,省了很多麻烦

podfile:

target 'DianLeIE’
pod 'Charts', '~> 3.0.0'
pod 'Realm', '~> 2.0.2'

use_frameworks!

在开始使用的时候遇到了一些问题,因为之前用core plote 第三绘图,很多都需要自己自定义,但是在Charts 上预留了很多自定义的方法,在使用时就不需要过多的计算,可能就是因为这个原因所以在github上star 很高,并且这个还有安卓版,坑的地方就是是看安卓使用文档,不过还是很容易看懂的,字面意思差不多。

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #703daa }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; min-height: 16.0px }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #3e1e81 }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #008400 }
span.s1 { }
span.s2 { color: #4f8187 }
span.s3 { color: #703daa }
span.s4 { color: #3e1e81 }
span.s5 { color: #272ad8 }
span.s6 { color: #ba2da2 }
span.s7 { color: #000000 }
span.s8 { color: #008400 }
span.s9 { font: 14.0px "PingFang SC"; color: #008400 }

_chartView = [[LineChartView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];

_chartView.delegate = self;

_chartView.chartDescription.enabled = NO;

_chartView.borderColor = [UIColor blackColor];

_chartView.dragEnabled = YES;               //是否允许拖拽

//X缩放

[_chartView setScaleXEnabled:YES];

//Y缩放

[_chartView setScaleYEnabled:NO];

_chartView.pinchZoomEnabled = NO;

//setExtraOffsets  设置偏移位置 这里需要调,不然影响xAxis label 与 线条上对应的位置有误差

[_chartView setExtraOffsetsWithLeft:5.f top:0.f right:30.f bottom:0.f];

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #008400 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #703daa }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000 }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #d12f1b }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #3e1e81 }
p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; min-height: 16.0px }
p.p7 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #4f8187 }
span.s1 { color: #000000 }
span.s2 { }
span.s3 { font: 14.0px "PingFang SC" }
span.s4 { color: #4f8187 }
span.s5 { color: #703daa }
span.s6 { color: #3e1e81 }
span.s7 { color: #008400 }
span.s8 { font: 14.0px "PingFang SC"; color: #008400 }
span.s9 { color: #272ad8 }
span.s10 { color: #ba2da2 }
span.s11 { color: #31595d }
span.s12 { color: #d12f1b }

//设置图例

ChartLegend *l = _chartView.legend;

l.form = ChartLegendFormSquare;                                     //图例样式

l.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:11.f];

l.textColor = [UIColor blackColor];

l.horizontalAlignment = ChartLegendHorizontalAlignmentRight;        //水平方向位置

l.verticalAlignment = ChartLegendVerticalAlignmentBottom;           //垂直方向位置

l.orientation = ChartLegendOrientationHorizontal;

l.drawInside = NO;

//X轴属性设置

ChartXAxis *xAxis = _chartView.xAxis;

xAxis.labelFont = [UIFont systemFontOfSize:11.f];

xAxis.labelTextColor =  [UIColor hex:@"666666"];        //009b34

xAxis.drawGridLinesEnabled = NO;

xAxis.drawAxisLineEnabled = YES;

_xAxisFormatter = [[DateValueFormatter alloc] init];

xAxis.valueFormatter = self;                 //自定xAxis label值样式

xAxis.labelCount = 5;

xAxis.labelPosition = ChartLimitLabelPositionLeftBottom;    //x轴位置

xAxis.labelRotationAngle = -20;

    

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #008400 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000 }
span.s1 { font: 14.0px Menlo; color: #000000 }
span.s2 { font: 14.0px Menlo }
span.s3 { }
span.s4 { color: #703daa }
span.s5 { color: #4f8187 }
span.s6 { color: #31595d }
span.s7 { color: #d12f1b }
span.s8 { color: #008400 }
span.s9 { color: #272ad8 }
span.s10 { color: #ba2da2 }
span.s11 { font: 14.0px "PingFang SC"; color: #008400 }
span.s12 { color: #3e1e81 }

     //左侧y轴属性设置

ChartYAxis *leftAxis = _chartView.leftAxis;

leftAxis.labelTextColor = [UIColor hex:@"9d9d9d"];      //9d9d9d

leftAxis.axisMinimum = 0.0;                  //设置leftAxis label 最小值为0

leftAxis.drawGridLinesEnabled = YES;

leftAxis.drawZeroLineEnabled = NO;

leftAxis.granularityEnabled = NO;

leftAxis.drawAxisLineEnabled = NO;

leftAxis.xOffset = 15;                              //x 位置偏移

[leftAxis setGridColor:[UIColor hex:@"efeff4"]];    //设置y轴表格颜色值

      

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #008400 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000 }
span.s1 { color: #000000 }
span.s2 { }
span.s3 { font: 14.0px "PingFang SC" }
span.s4 { color: #703daa }
span.s5 { color: #4f8187 }
span.s6 { color: #272ad8 }
span.s7 { color: #ba2da2 }

//右侧Y轴属性设置

ChartYAxis *rightAxis = _chartView.rightAxis;

rightAxis.axisMaximum = 0 ;

rightAxis.axisMinimum = 0 ;

rightAxis.drawAxisLineEnabled = NO;

  

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #008400 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000 }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #4f8187 }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; min-height: 16.0px }
span.s1 { color: #000000 }
span.s2 { }
span.s3 { font: 14.0px "PingFang SC" }
span.s4 { color: #4f8187 }
span.s5 { color: #703daa }
span.s6 { color: #3e1e81 }
span.s7 { color: #272ad8 }
span.s8 { color: #31595d }
span.s9 { color: #d12f1b }

    //继承ChartMarkerImage 自定义提示框  这里BalloonMarker 是Charts Demo中找到了,自个加一下修改

_marker = [[BalloonMarker alloc]

initWithColor: [UIColor colorWithWhite:180/255. alpha:1.0]

font: [UIFont systemFontOfSize:12.0]

textColor: [UIColor hex:@"666666"]

insets: UIEdgeInsetsMake(0, 0, 0, 0)];

_marker.chartView = _chartView;

_marker.image = [UIImage imageNamed:@"icon_marker"];

_marker.minimumSize = CGSizeMake(80.f, 40.f);

_chartView.marker = _marker;

    //最坑的在这里,设置X轴最大显示范围 必须在设置数据 后加入,不然因为填充数据后重新计算会导致错误,并且要移除charView上历史视图

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; min-height: 16.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #3e1e81 }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #4f8187 }
span.s1 { }
span.s2 { color: #ba2da2 }
span.s3 { color: #31595d }
span.s4 { color: #703daa }
span.s5 { color: #000000 }
span.s6 { color: #4f8187 }
span.s7 { color: #272ad8 }
span.s8 { color: #3e1e81 }

[self setDataCount:dataArry.count Data:dataArry dateArry:dateArry];

[_chartView setVisibleXRangeMaximum:5.0f];

[_chartView setVisibleXRangeMinimum:5.0f];

[_chartView moveViewToX:_dateArry.count+1];

如果最开始使用建议下载Demo并且查看安卓版文档:https://github.com/PhilJay/MPAndroidChart/wiki

一些常见的问题也可在这查看:https://github.com/PhilJay/MPAndroidChart/issues

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #1337ff }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #3e1e81 }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000 }
span.s1 { }

常见绘图框架-(Charts)的更多相关文章

  1. 常见MVC框架比较

    常见MVC框架比较 运行性能上: Jsp+servlet>struts1>spring mvc>struts2+freemarker>>struts2,ognl,值栈. ...

  2. 陈灯WGF双缓冲绘图框架

    “木丸子童屋”,专售各类儿童玩具,价格优惠,请大家多多支持:http://shop65552598.taobao.com/ WGF(windows graphic foundation)为window ...

  3. 认识ExtJS(04)--常见Web框架的ExtJS改造

    常见Web框架的ExtJS改造 怎样开始改造工作? 改造主要集中在对表现层的修改,底层的数据库访问不需要进行任何的变动.也就是说主要集中早这2个方面:一方面是表现部分即是JSP页面:另一方面是客户端与 ...

  4. iOS绘图框架CoreGraphics分析

    由于CoreGraphics框架有太多的API,对于初次接触或者对该框架不是十分了解的人,在绘图时,对API的选择会感到有些迷茫,甚至会觉得iOS的图形绘制有些繁琐.因此,本文主要介绍一下iOS的绘图 ...

  5. iOS - Quartz 2D 第三方框架 Charts 绘制图表

    1.Charts 简介 使用第三方框架 Charts 绘制 iOS 图表.GitHub 源码 Charts Charts 是一款用于绘制图表的框架,可以绘制柱状图.折线图.K线图.饼状图等.Chart ...

  6. 7个常见Javascript框架介绍

    设计开发中的“框架”指一套包含工具.函数库.约定,以及尝试从常用任务中抽象出可以复用的通用模块,目标是使设计师和开发人员把重点放在任务项目所特有的方面,避免重复开发.通俗的讲,框架就是最常用的java ...

  7. 常见JAVA框架

     Spring Framework [Java开源JEE框架] Spring是一个解决了许多在J2EE开发中常见的问题的强大框架. Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不 ...

  8. VUE 与其他常见前端框架对比

    对比其他框架(转官方文档) 这个页面无疑是最难编写的,但我们认为它也是非常重要的.或许你曾遇到了一些问题并且已经用其他的框架解决了.你来这里的目的是看看 Vue 是否有更好的解决方案.这也是我们在此想 ...

  9. 2019年Web前端最新导航(常见前端框架、前端大牛)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 前言 本文列出了很多与前端有关的常见网站.博客.工具等,整体来看比较权威.有些东西已经 ...

随机推荐

  1. windows系统下简单nodej.s环境配置 安装

    国内目前关注最高,维护最好的一个关于nodejs的网站应该是http://www.cnodejs.org/ windows系统下简单nodejs环境配置. 第一步:下载安装文件 下载地址:官网 htt ...

  2. gpio高阻态

    配置gpio为高阻态:将gpio设为GPIO_INPUT,GPIO_NO_PULL即可

  3. prim算法查找最小生成树

    我们在图的定义中说过,带有权值的图就是网结构.一个连通图的生成树是一个极小的连通子图,它含有图中全部的顶点,但只有足以构成一棵树的n-1条边.所谓的最小成本,就是n个顶点,用n-1条边把一个连通图连接 ...

  4. web 音频文件自动播放(兼容所有浏览器)

    function AudioPerform() { var ua = navigator.userAgent.toLowerCase(); var audiopath = "$!{Templ ...

  5. .net 生成 静态页面

    .net 生成 静态页面 <!--Main.Aspx--> <%@ page language="C#" %> <%@ import namespac ...

  6. iOS屏幕适配

    ## iOS屏幕适配 ### iOS屏幕适配发展史 1> iPhone4以前(没有iPad) * 不需要屏幕适配 2> iPad.iPhone5等设备出现 * 需要做横竖屏适配 * aut ...

  7. OpenGL学习笔记5——嵌入Qt框架

    学习OpenGL也有段时间了,前几篇将GL最基本的画图过程解析了一下,后面进阶的就随项目需要再学.因为之前一直是用glut这个实用工具包来开发很方便,但是会附带一个控制台的窗口,实在觉得有些low,因 ...

  8. C++设计模式-Bridge桥接模式

    作用:将抽象部份与它的实现部份分离,使它们都可以独立地变化. 将抽象(Abstraction)与实现(Implementation)分离,使得二者可以独立地变化. 桥接模式号称设计模式中最难理解的模式 ...

  9. Replication

    Peer-to-peer replication: http://msdn.microsoft.com/en-us/library/ms151196(v=sql.120).aspx Merge rep ...

  10. 数据回复之TestDisk的使用

    1,选择[No Log]或者是[Create]进入 2.选择好要恢复的硬盘,回车 3.选择Intel或者其他的系统,大多数选择intel(windows)使用,回车确认 4.选择[Analyse](分 ...