- 浏览: 538030 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
landerson:
明显就有要求的嘛
ANDROID轻量级JSON序列化和反序列化[转] -
jimode2013:
很不错,就是需要这个方法
多个UIViewController使用addSubView,第二个 UIViewController 不响应旋转[转] -
w11h22j33:
...
[转]NSMutableArray中的自动释放对象让我郁闷了一整天 -
w11h22j33:
UILabel* label = [[UILabel a ...
Iphone开发 -
w11h22j33:
http://mobile.51cto.com/iphone- ...
获得通讯录中联系人的所有属性[转]
http://unmi.cc/ios-coreplot-chart-started
iOS(iPhone/iPad) 下图形组件有两个有名的,s7graphview 和 Core Plot,它们都是在 Google 上托管的代码,听说 Core Plot 比较强,因为前者仅支持曲线图,后者呢曲线图、饼图、柱状图等通吃,且较活跃。那就专注下 Core Plot 的使用。它提供了 Mac OS X 和 iOS 下的组件库,我只用到它的 iOS 图表库。
Core Plot 能画出来图表的效果应该多看看:http://code.google.com/p/core-plot/wiki/PlotExamples,相信看过之后绝大多数的 iOS 下的图表可以用它来满足你了。
配置其实很简单的,先从 http://code.google.com/p/core-plot/downloads/list 下载最新版的 Core Plot,比如当前是:CorePlot_0.4.zip,解压开,然后就两步:
1. 把目录 CorePlot_0.4/Binaries/iOS 中的 libCorePlotCocoaTouch.a 和整个子目录 CorePlotHeaders 从 Finder 中一并拖入到当前项目中,选择 Copy item into destination group's folder (if needed),Add to targets 里选上相应的 target。此时你可以在项目的 target 中 Build Phases 页里 Link Binary With Libraries 中看到有了 libCorePlot-CocoaTouch.a.
2. 再到相应 Target 的 Build Settings 页里,Other Linker Flags 项中加上 -ObjC -all_load
[注]我所用的 Xcode 是 4.1 版本的。Xcode 3 的 Target 设置项位置稍有不同。
配置就这么完成了,使用时只需要 #import "CorePlot-CocoaTouch.h",下面来体验一个最简单的例子,下载的 CorePlot 包中虽然有一些例子,但还是需要一个能让人好理解并获得最快速体验的。比如像这下图中这么一个最简单的曲线图,最基本的代码要素应该有哪些呢?
主要代码就是下面那样:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
// // Created by Unmi Qiu on 8/11/11. // Copyright 2011 . All rights reserved. // #import <UIKit/UIKit.h> #import "CorePlot-CocoaTouch.h" @interface TestCorePlotViewController : UIViewController <CPTPlotDataSource> {
NSMutableArray *dataArray;
} @end @implementation TestCorePlotViewController
#pragma mark - View lifecycle - ( void ) viewDidAppear:( BOOL )animated {
//初始化数组,并放入十个 0 - 20 间的随机数
dataArray = [[ NSMutableArray alloc] init];
for ( int i=0; i< 10; i++){
[dataArray addObject:[ NSNumber numberWithInt: rand ()%20]];
}
CGRect frame = CGRectMake(10,10, 300,100);
//图形要放在一个 CPTGraphHostingView 中,CPTGraphHostingView 继承自 UIView
CPTGraphHostingView *hostView = [[CPTGraphHostingView alloc] initWithFrame:frame];
//把 CPTGraphHostingView 加到你自己的 View 中
[ self .view addSubview:hostView];
hostView.backgroundColor = [ UIColor blueColor];
//在 CPTGraph 中画图,这里的 CPTXYGraph 是个曲线图
//要指定 CPTGraphHostingView 的 hostedGraph 属性来关联
CPTXYGraph *graph = [[CPTXYGraph alloc] initWithFrame:hostView.frame];
hostView.hostedGraph = graph;
CPTScatterPlot *scatterPlot = [[CPTScatterPlot alloc] initWithFrame:graph.bounds];
[graph addPlot:scatterPlot];
scatterPlot.dataSource = self ; //设定数据源,需应用 CPTPlotDataSource 协议
//设置 PlotSpace,这里的 xRange 和 yRange 要理解好,它决定了点是否落在图形的可见区域
//location 值表示坐标起始值,一般可以设置元素中的最小值
//length 值表示从起始值上浮多少,一般可以用最大值减去最小值的结果
//其实我倒觉得,CPTPlotRange:(NSRange) range 好理解些,可以表示值从 0 到 20
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *) scatterPlot.plotSpace;
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0)
length:CPTDecimalFromFloat([dataArray count]-1)];
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0)
length:CPTDecimalFromFloat(20)];
//下面省去了坐标与线型及其他图形风格的代码
[plotSpace release];
[graph release];
[hostView release];
} //询问有多少个数据,在 CPTPlotDataSource 中声明的 - ( NSUInteger ) numberOfRecordsForPlot:(CPTPlot *)plot {
return [dataArray count];
} //询问一个个数据值,在 CPTPlotDataSource 中声明的 - ( NSNumber *) numberForPlot:(CPTPlot *)plot field:( NSUInteger )fieldEnum recordIndex:( NSUInteger )index {
if (fieldEnum == CPTScatterPlotFieldY){ //询问 Y 值时
return [dataArray objectAtIndex:index];
} else { //询问 X 值时
return [ NSNumber numberWithInt:index];
}
} - ( void ) dealloc {
[dataArray release];
[ super dealloc];
} @end |
关于更详细的 Core Plot 使用,下面还会继续作介绍的。
参考:1. http://www.e-string.com/content/simple-graph-using-core-plot
2. http://www.e-string.com/content/simple-bar-chart-core-plot
3. http://www.jaysonjc.com/programming/pie-chart-drawing-in-iphone-using-core-plot-library.html
发表评论
-
iOS App性能优化
2014-01-03 11:23 1694http://www.hrchen.com/2013/05/ ... -
iOS多线程编程Part 3/3 - GCD
2014-01-03 11:21 1649http://www.hrchen.com/2013/07/ ... -
iOS多线程编程Part 2/3 - NSOperation
2014-01-03 11:20 4545http://www.hrchen.com/2013/06/ ... -
iOS多线程编程Part 1/3 - NSThread & Run Loop
2014-01-03 11:17 7106http://www.hrchen.com/2013/06/ ... -
iOS移动网络环境调优那些事[转]
2014-01-02 17:10 2700http://xiangwangfeng.com/201 ... -
生成APNS Service证书的步骤[转]
2013-05-23 09:19 5678要进行推送服务的第一件事就是获取推送证书。它用来对你通过SS ... -
xcode 环境,多工程联编设置【转】
2013-02-28 21:59 8965http://blog.csdn.net/vienna_zj ... -
干掉你程序中的僵尸代码【转】
2012-12-22 11:05 966随着万圣节越来越流行,我感觉有必要跟大家讨论一下一个 ... -
一个文本框搞定信用卡相关信息的输入[转]
2012-12-22 11:03 1140http://beforweb.com/node/134 ... -
【转】深度技术分析“为什么ios比android流畅”
2012-09-23 19:41 1439原文 Andorid更新了一个版本又一个版本,硬 ... -
Iphone开发
2012-09-17 22:46 12071. NSClassFromString 这个方法 ... -
HowTo: Install iPhone SDK 2.0 – 3.1 for XCode 3.2[转]
2012-09-06 09:00 1224原文链接 So… you’ve installe ... -
Xcode 中设置部分文件ARC支持[转]
2012-08-03 10:57 1736ARC是什么 ARC是iOS 5推出的新功 ... -
xcode4 设置调试错误信息小结【转】
2012-07-19 14:37 1811方案1:NSZombieEnabled 先选中工程, ... -
Finding iPhone Memory Leaks: A “Leaks” Tool Tutorial【转】
2012-07-19 14:36 1267Finding iPhone Memory Lea ... -
[Cocoa]XCode的一些调试技巧【转】
2012-07-19 14:35 1206XCode 内置GDB,我们可以在命令行中使用 GDB ... -
[IPhone]如何使用Leak检查内存泄漏[转]
2012-07-19 14:34 1236简介 在IPhone程式开发中,记忆体泄漏(内存泄漏)是 ... -
获得通讯录中联系人的所有属性[转]
2012-06-21 14:04 1616获得通讯录中联系人的所有属性 ,看代码: ABAdd ... -
多个UIViewController使用addSubView,第二个 UIViewController 不响应旋转[转]
2012-06-20 23:51 16423------------------------------- ... -
shouldAutorotateToInterfaceOrientation 不触发或者不执行的问题[转]
2012-06-20 22:58 1463今天遇到一个很郁闷 ...
相关推荐
在iOS开发中,Core Plot是一个强大的第三方图表绘制框架,它允许开发者在应用程序中集成各种图表,包括柱状图。尽管Core Plot的版本在撰写本文时尚未提供水平柱状图,但它仍然能够满足大多数常见的数据可视化需求。...
这个“IOS_使用core plot实现曲线图(可点击)”的项目旨在教你如何利用Core Plot库来构建一个交互式的曲线图,类似于股票图表,并且支持手势识别,使得标杆可以滑动。以下将详细讲解Core Plot的使用方法以及实现...
Core Plot是一款强大的开源图形库,专为iOS和macOS平台设计,用于创建高质量的数据可视化图表。它提供了丰富的2D绘图功能,能够帮助开发者轻松构建出各种复杂的图表,如折线图、柱状图、散点图、饼图以及热力图等。...
ios平台上的图表绘制,基于coreplot进行修改,将线状图、饼状图和柱状图分别改为了一个uiview,使用时只需要按照代码中的例子添加对应的数据,然后像使用一个uiview一样,添加上去就可以展现出对应的图表。
总之,CorePlot是iOS和macOS开发中绘制2D图表的强大工具,通过它,开发者能够轻松创建出专业且美观的统计图表,极大地提高了应用程序的用户体验。通过深入研究和实践“CorePlotExample”项目,你可以更好地掌握这个...
CorePlot是一款强大的图形库,主要用于iOS和Mac OS X平台,它允许开发者轻松地创建各种复杂的2D图表,如折线图、柱状图、饼图等。在这个"CorePlot1.0饼图demo"中,我们将深入探讨如何利用CorePlot 1.0版本来构建一个...
在标签"Swift开发-图表(Chart)"的上下文中,Swift的图表库如Charts、Core Plot等通常提供了更高级别的API来简化图表绘制,包括贝塞尔曲线图表。但如果你需要自定义特定的图表效果,那么直接使用UIBezierPath会更加...
CorePlot是一款强大的开源图形库,主要用于iOS和macOS平台,为开发者提供绘制各种2D图表的能力,如曲线图、柱状图、饼图、散点图以及走势图等。这个源码包显然包含了CorePlot库的核心代码,使得我们可以深入理解其...
Core Plot是一款开源的图形库,专门用于iOS和Mac OS X平台,它提供了丰富的2D图形绘制功能,使得开发者能够方便地在应用中创建各种复杂的图表,如折线图、柱状图、饼图等。这款库的强大之处在于其灵活性和自定义性,...
- 考虑使用Core Plot等第三方库,它们已经实现了高性能的图表绘制功能,可以直接使用,减少开发工作量。 总之,实现一个可多条同时绘制的折线统计图在iOS开发中是一个典型的自定义视图任务。通过Core Graphics和...
在“CorePlot开源库的使用及Demo”中,你可以找到关于如何利用CorePlot在你的项目中绘制曲线图和其他图表的详细信息。下面是一些关于CorePlot的关键知识点: 1. **安装与集成**:首先,你需要通过CocoaPods或手动的...
在提供的"CorePlotDemo"中,你应该能找到一个实际的应用示例,展示如何使用CorePlot来创建和展示数据图表。"源码说明.htm"可能包含了关于这个示例应用的详细说明,包括如何配置项目、导入库、创建图表对象以及添加...
在iOS开发中,"K线绘制蜡烛demo"是一个典型的金融图表应用实例,主要用于展示股票、期货、数字货币等市场的价格走势。K线图,又称阴阳烛图,是金融市场中广泛使用的图表类型,它能直观地反映开盘价、收盘价、最高价...
CorePlot是一款强大的开源图形库,主要用于iOS和macOS平台,为开发者提供了丰富的2D图表绘制功能。这个"CorePlot Demo"是一个完整的示例项目,展示了如何在iOS应用中利用CorePlot库来创建柱状图和状态图。通过下载并...
通过这个资源包,开发者不仅可以学习如何在iOS应用中实现图表功能,还可以了解Core Plot框架的工作原理,以及如何根据需要定制图表。这对于想要提升iOS应用数据可视化能力的开发者来说是一份宝贵的资源。源码示例...
CorePlot是一款强大的图形库,主要用于iOS和macOS平台,它提供了丰富的2D图表绘制功能,让你能够轻松地在应用程序中创建各种数据可视化效果。在这个压缩包中,你将找到一个名为"CorePlotTest"的项目,它包含了使用...
Core Plot 作为一个强大的图表绘制库,不仅支持多种图表类型,还具备高度定制化的能力。通过深入理解其设计原则和类结构,开发者可以充分利用 Core Plot 的强大功能来创建美观、功能丰富的图表应用。
CorePlot是一个绘制数据统计图的类库。这份代码是CorePlot库的简单应用例子,绘制包括了饼图,柱状图,散点图(折线图)。 作者说:这份代码是本人照着一个国外的大牛的博客写的,再加入了自己充分的理解后发布的...
本篇文章将深入探讨如何在iOS平台上利用Core Plot框架来绘制运动曲线图。 Core Plot是一个强大的2D绘图框架,支持iOS和macOS平台,它提供了丰富的图表类型,包括曲线图、散点图、柱状图等,非常适合用于数据分析和...
Core Plot是一款强大的图形绘制框架,支持多种图表类型,包括折线图、柱状图、饼图等,能够处理大量数据并提供高度自定义的图表样式。这个DEMO可能是对Core Plot的二次开发,以创建特定类型的曲线图表。 在这个修改...