ios core plot设置xy坐标
#import "ViewController.h" @interface ViewController ()
//要绘制基于x,y轴的图形
@property(nonatomic,retain)CPTXYGraph *graph;
@property(nonatomic,retain)NSMutableArray *dataForPlot;
//要绘制的view 必须为CPTGraphicView
@property(nonatomic,assign)CPTGraphHostingView *hostview;
@end @implementation ViewController - (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self LoadInit];
[self SetUpCoreplotViews];
} -(void)LoadInit{
self.hostview=[[[CPTGraphHostingView alloc] initWithFrame:CGRectMake(, , , )] autorelease]; self.dataForPlot=[NSMutableArray array];
[self.view addSubview:_hostview]; } -(void)SetUpCoreplotViews{ //1:创建线性
CPTMutableLineStyle *lineStyle=[CPTMutableLineStyle lineStyle];
//基于x,y轴图形的画布
self.graph=[[[CPTXYGraph alloc] initWithFrame:CGRectZero] autorelease];
//设置主题
CPTTheme *them=[CPTTheme themeNamed:kCPTStocksTheme];
//把主题设置到画布上
[self.graph applyTheme:them]; //设置画布距离view的边距
self.graph.paddingLeft=10.0f;
self.graph.paddingTop=10.0f;
self.graph.paddingRight=10.0f;
self.graph.paddingBottom=10.0f;
//然后把画布设置到指定view上
self.hostview.hostedGraph=_graph; //设置画布在屏幕类可显示的x,y刻度
CPTXYPlotSpace *plotSpace=(CPTXYPlotSpace *)_graph.defaultPlotSpace;
//可以移动
plotSpace.allowsUserInteraction=YES;
plotSpace.xRange=[CPTPlotRange plotRangeWithLocation:CPTDecimalFromCGFloat(1.0) length:CPTDecimalFromCGFloat(2.0)];
plotSpace.yRange=[CPTPlotRange plotRangeWithLocation:CPTDecimalFromCGFloat(1.0) length:CPTDecimalFromCGFloat(3.0)]; //axes 设置x,y轴属性,如原点。
//得到x,y轴的集合
CPTXYAxisSet *axisSet=(CPTXYAxisSet *)self.graph.axisSet;
lineStyle.miterLimit=1.0f;
lineStyle.lineWidth=2.0f;
lineStyle.lineColor=[CPTColor whiteColor]; CPTXYAxis *x=axisSet.xAxis;
x.orthogonalCoordinateDecimal=CPTDecimalFromString(@"");//原点为3.(y=3)
x.majorIntervalLength=CPTDecimalFromString(@"0.5");//主刻度之间检举
x.minorTicksPerInterval=;//主刻度中显示的细分刻度的数目
x.minorTickLineStyle=lineStyle;
//需要排除的不显示数字的主刻度 NSArray *exclusionRange=[NSArray arrayWithObjects:[self CPTPlotRangeFromFloat:0.99 length:0.02],[self CPTPlotRangeFromFloat:2.99 length:0.02],nil];
x.labelExclusionRanges=exclusionRange; //设置y 轴
CPTXYAxis *y=axisSet.yAxis;
y.orthogonalCoordinateDecimal=CPTDecimalFromString(@"");
y.majorIntervalLength=CPTDecimalFromString(@"0.5");
y.minorTicksPerInterval=;
y.minorTickLineStyle=lineStyle; NSArray *yexclusionRange=[NSArray arrayWithObjects:[self CPTPlotRangeFromFloat:0.99 length:0.22],[self CPTPlotRangeFromFloat:2.99 length:0.22],nil];
y.labelExclusionRanges=yexclusionRange; } -(CPTPlotRange *)CPTPlotRangeFromFloat:(float)location length:(float)length
{
return [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(location) length:CPTDecimalFromFloat(length)];
} - (void)dealloc
{
[_graph release];
[_dataForPlot release];
[super dealloc];
}
参考文章 http://www.cnblogs.com/kesalin/archive/2013/04/04/coreplot_xygrapha.html
画折线
//
// ViewController.m
// corePlot
//
// Created by ganchaobo on 13-7-31.
// Copyright (c) 2013年 ganchaobo. All rights reserved.
// #import "ViewController.h" @interface ViewController ()
//要绘制基于x,y轴的图形
@property(nonatomic,retain)CPTXYGraph *graph;
@property(nonatomic,retain)NSMutableArray *dataForPlot;
//要绘制的view 必须为CPTGraphicView
@property(nonatomic,assign)CPTGraphHostingView *hostview;
@end @implementation ViewController - (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self LoadInit];
[self SetUpCoreplotViews];
} -(void)LoadInit{
self.hostview=[[[CPTGraphHostingView alloc] initWithFrame:CGRectMake(, , , )] autorelease]; self.dataForPlot=[NSMutableArray array];
[self.view addSubview:_hostview];
//_dataForPlot = [NSMutableArray arrayWithCapacity:100];
NSUInteger i;
for ( i = ; i < ; i++ ) {
id x = [NSNumber numberWithFloat: + i * 0.05];
id y = [NSNumber numberWithFloat:1.2 * rand() / (float)RAND_MAX + 1.2];
[_dataForPlot addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:x, @"x", y, @"y", nil]];
} } -(void)SetUpCoreplotViews{ //1:创建线性
CPTMutableLineStyle *lineStyle=[CPTMutableLineStyle lineStyle];
//基于x,y轴图形的画布
self.graph=[[[CPTXYGraph alloc] initWithFrame:CGRectZero] autorelease];
//设置主题
CPTTheme *them=[CPTTheme themeNamed:kCPTStocksTheme];
//把主题设置到画布上
[self.graph applyTheme:them]; //设置画布距离view的边距
self.graph.paddingLeft=10.0f;
self.graph.paddingTop=10.0f;
self.graph.paddingRight=10.0f;
self.graph.paddingBottom=10.0f;
//然后把画布设置到指定view上
self.hostview.hostedGraph=_graph; //设置画布在屏幕类可显示的x,y刻度
CPTXYPlotSpace *plotSpace=(CPTXYPlotSpace *)_graph.defaultPlotSpace;
//可以移动
plotSpace.allowsUserInteraction=YES;
plotSpace.xRange=[CPTPlotRange plotRangeWithLocation:CPTDecimalFromCGFloat(1.0) length:CPTDecimalFromCGFloat(2.0)];
plotSpace.yRange=[CPTPlotRange plotRangeWithLocation:CPTDecimalFromCGFloat(1.0) length:CPTDecimalFromCGFloat(3.0)]; //axes 设置x,y轴属性,如原点。
//得到x,y轴的集合
CPTXYAxisSet *axisSet=(CPTXYAxisSet *)self.graph.axisSet;
lineStyle.miterLimit=1.0f;
lineStyle.lineWidth=2.0f;
lineStyle.lineColor=[CPTColor whiteColor]; CPTXYAxis *x=axisSet.xAxis;
x.orthogonalCoordinateDecimal=CPTDecimalFromString(@"");//原点为3.(y=3)
x.majorIntervalLength=CPTDecimalFromString(@"0.5");//主刻度之间检举
x.minorTicksPerInterval=;//主刻度中显示的细分刻度的数目
x.minorTickLineStyle=lineStyle;
//需要排除的不显示数字的主刻度 NSArray *exclusionRange=[NSArray arrayWithObjects:[self CPTPlotRangeFromFloat:0.99 length:0.02],[self CPTPlotRangeFromFloat:2.99 length:0.02],nil];
x.labelExclusionRanges=exclusionRange; //设置y 轴
CPTXYAxis *y=axisSet.yAxis;
y.orthogonalCoordinateDecimal=CPTDecimalFromString(@"");
y.majorIntervalLength=CPTDecimalFromString(@"0.5");
y.minorTicksPerInterval=;
y.minorTickLineStyle=lineStyle; NSArray *yexclusionRange=[NSArray arrayWithObjects:[self CPTPlotRangeFromFloat:0.99 length:0.22],[self CPTPlotRangeFromFloat:2.99 length:0.22],nil];
y.labelExclusionRanges=yexclusionRange; //画折线
lineStyle.miterLimit=1.0f;
lineStyle.lineWidth=3.0f;
lineStyle.lineColor=[CPTColor blueColor]; //折线的对象
CPTScatterPlot *boundlinePlot=[[CPTScatterPlot alloc] init];
boundlinePlot.dataLineStyle=lineStyle;
boundlinePlot.identifier=@"blue";
boundlinePlot.dataSource=self; [_graph addPlot:boundlinePlot]; } -(CPTPlotRange *)CPTPlotRangeFromFloat:(float)location length:(float)length
{
return [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(location) length:CPTDecimalFromFloat(length)];
} #pragma mark -plot delegate
-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot{
return self.dataForPlot.count;
} -(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
{
NSString * key = (fieldEnum == CPTScatterPlotFieldX ? @"x" : @"y");
NSNumber * num = [[_dataForPlot objectAtIndex:index] valueForKey:key]; NSLog(@"%zi-->%@",[num intValue],key); return num;
} - (void)dealloc
{
[_graph release];
[_dataForPlot release];
[super dealloc];
}
@end
ios core plot设置xy坐标的更多相关文章
- iOS 使用 Core Plot 绘制统计图表入门
本文转载至 http://blog.csdn.net/zhibudefeng/article/details/7677457 iOS(iPhone/iPad) 下图形组件有两个有名的,s7gra ...
- 转 iOS Core Animation 动画 入门学习(一)基础
iOS Core Animation 动画 入门学习(一)基础 reference:https://developer.apple.com/library/ios/documentation/Coco ...
- iOS Core Animation 简明系列教程
iOS Core Animation 简明系列教程 看到无数的CA教程,都非常的难懂,各种事务各种图层关系看的人头大.自己就想用通俗的语言翻译给大家听,尽可能准确表达,如果哪里有问题,请您指出我会尽 ...
- iOS - Core Animation 核心动画
1.UIView 动画 具体讲解见 iOS - UIView 动画 2.UIImageView 动画 具体讲解见 iOS - UIImageView 动画 3.CADisplayLink 定时器 具体 ...
- 如何使用 Core Plot 的 API 帮助文档
Core Plot 可是 iOS 下绝好的图表组件,虽说它的相关资料不甚丰富,特别是中文的,英文的还是有几篇不错的文章,不过 Core Plot 自身提供的 API 帮助文档,以及代码示例其实很有用的 ...
- iOS开发UI篇—九宫格坐标计算
iOS开发UI篇—九宫格坐标计算 一.要求 完成下面的布局 二.分析 寻找左边的规律,每一个uiview的x坐标和y坐标. 三.实现思路 (1)明确每一块用得是什么view (2)明确每个view之间 ...
- iOS开发--应用设置及用户默认设置【1、bundle的运用】
在iphone里面,应用都会在“设置”里面有个专属的应用设置,选择该菜单界面,用户便可以在其中输入和更改各种选项,协助用户更便捷设置个人喜好与习惯. 在这一节中,希望能通过对捆绑包(bu ...
- iOS开发--应用设置及用户默认设置——转载
[链接]iOS开发--应用设置及用户默认设置[1.bundlehttp://www.jianshu.com/p/6f2913f6b218 在iphone里面,应用都会在“设置”里面有个专属的应用设置, ...
- 解决iOS中 tabBarItem设置图片(image+title切图在一起)时造成的图片向上偏移
解决iOS中 tabBarItem设置图片(image+title切图在一起)时造成的图片向上偏移 解决办法1:设置tabBarItem的imageInsets属性 代码示例: childContro ...
随机推荐
- C#如何判断线程池中所有的线程是否已经完成(转)
其 实很简单用ThreadPool.RegisterWaitForSingleObject方法注册一个定时检查线程池的方法,在检查线程的方法内调用 ThreadPool.GetAvailableThr ...
- Install OpenCV-Python in Ubuntu
之前安装python版opencv,需要下载whl文件,进行安装,这是在window环境下的: 安装opencv_python,下载whl包 安装系统python下的opencv 今天发现一个简单的方 ...
- webservice发布问题,部署iis后调用不成功
我使用的环境win8.vs2010.IIS8.0 vs2010中创建的webservice中的方法可以正常调用,但是发布到IIS上后,asmx文件能正常访问, 但是进入方法后, 点击 "调用 ...
- JQuery Ajax 在asp.net中使用总结
自从有了JQuery,Ajax的使用变的越来越方便了,但是使用中还是会或多或少的出现一些让人短时间内痛苦的问题.本文暂时总结一些在使用JQuery Ajax中应该注意的问题,如有不恰当或者不完善的地方 ...
- 自动化打包 Jenkins 持续集成 Git Gradle MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- diy作品——视觉追踪小车介绍
最近刚刚完毕了一个追踪功能的小车.大体功能例如以下:小车能通过网线给电脑传图(抱歉.临时没搞wifi驱动).并在电脑端通过鼠标选中待跟踪的目标,然后小车就開始追踪.由于追踪框有缩放功能.所以也能推断物 ...
- windows及linux环境下永久修改pip镜像源的方法
一.在windows环境下修改pip镜像源的方法(以python3.5为例) (1):在windows文件管理器中,输入 %APPDATA% (2):会定位到一个新的目录下,在该目录下新建pip文件夹 ...
- 【RPC】跨语言-RPC框架
跨语言-RPC框架 跨语言 rpc_百度搜索 (5 条消息)谁能用通俗的语言解释一下什么是 RPC 框架? - 知乎 跨语言RPC框架Hessian.Thrift.Protocol Buffer之间的 ...
- 解决THINKCMF后台文章的相册图集只能上传一个图片的问题
遇到的问题: 最近使用了THINKCMF给客户开发了一个企业网站,客户在使用了一段时间后打电话说后台文章编辑页面有问题 经过沟通过知道,在后台文章编辑和添加页面相册图集每次只能上传一张图片 在跟客 ...
- (转)PlayerPrefs在Windows下存到哪里去了?
自:http://www.unitymanual.com/blog-77510-2971.html?_dsign=ec64b1e5 测试脚本 saveData.cs 附着在MainCamera上. ...