#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坐标的更多相关文章

  1. iOS 使用 Core Plot 绘制统计图表入门

     本文转载至 http://blog.csdn.net/zhibudefeng/article/details/7677457   iOS(iPhone/iPad) 下图形组件有两个有名的,s7gra ...

  2. 转 iOS Core Animation 动画 入门学习(一)基础

    iOS Core Animation 动画 入门学习(一)基础 reference:https://developer.apple.com/library/ios/documentation/Coco ...

  3. iOS Core Animation 简明系列教程

    iOS Core Animation 简明系列教程  看到无数的CA教程,都非常的难懂,各种事务各种图层关系看的人头大.自己就想用通俗的语言翻译给大家听,尽可能准确表达,如果哪里有问题,请您指出我会尽 ...

  4. iOS - Core Animation 核心动画

    1.UIView 动画 具体讲解见 iOS - UIView 动画 2.UIImageView 动画 具体讲解见 iOS - UIImageView 动画 3.CADisplayLink 定时器 具体 ...

  5. 如何使用 Core Plot 的 API 帮助文档

    Core Plot 可是 iOS 下绝好的图表组件,虽说它的相关资料不甚丰富,特别是中文的,英文的还是有几篇不错的文章,不过 Core Plot 自身提供的 API 帮助文档,以及代码示例其实很有用的 ...

  6. iOS开发UI篇—九宫格坐标计算

    iOS开发UI篇—九宫格坐标计算 一.要求 完成下面的布局 二.分析 寻找左边的规律,每一个uiview的x坐标和y坐标. 三.实现思路 (1)明确每一块用得是什么view (2)明确每个view之间 ...

  7. iOS开发--应用设置及用户默认设置【1、bundle的运用】

           在iphone里面,应用都会在“设置”里面有个专属的应用设置,选择该菜单界面,用户便可以在其中输入和更改各种选项,协助用户更便捷设置个人喜好与习惯. 在这一节中,希望能通过对捆绑包(bu ...

  8. iOS开发--应用设置及用户默认设置——转载

    [链接]iOS开发--应用设置及用户默认设置[1.bundlehttp://www.jianshu.com/p/6f2913f6b218 在iphone里面,应用都会在“设置”里面有个专属的应用设置, ...

  9. 解决iOS中 tabBarItem设置图片(image+title切图在一起)时造成的图片向上偏移

    解决iOS中 tabBarItem设置图片(image+title切图在一起)时造成的图片向上偏移 解决办法1:设置tabBarItem的imageInsets属性 代码示例: childContro ...

随机推荐

  1. scrapy框架系列 (3) Item Pipline

    item pipeline 当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item. 每个Item Pipeline ...

  2. js命名空间写法

    很早知道这种写法,由于基础面向对象不够扎实一直在回避,但是面对整站这种方法还是有必要会 <div id="div1">111</div> <div i ...

  3. 使用MultipartEntity对文字、图片、视频进行综合上传

    package com.home.upload; import java.io.File; import java.nio.charset.Charset; import java.util.Arra ...

  4. [NL系列] RNN & LSTM 网络结构及应用

    http://www.jianshu.com/p/f3bde26febed/ 这篇是 The Unreasonable Effectiveness of Recurrent Neural Networ ...

  5. 转: Centos安装gcc及g++

    Centos安装gcc及g++   Centos支持yum安装,安装软件一般格式为yum install .......,注意安装时要先成为root用户. 按照这个思路,我想安装过程如下: 安装gcc ...

  6. 【矩阵乘】【DP】【codevs 1305】Freda的道路

    1305 Freda的道路 时间限制: 1 s 空间限制: 128000 KB 题目等级: 大师 Master 题目描写叙述 Description Freda要到Rainbow的城堡去玩了. 我们能 ...

  7. windows vs2017环境下编译webkit 2

    WebKit在Windows上 内容 安装开发工具 设置Git存储库 设置支持工具 构建WebKit 安装Cygwin(可选) 得到一个崩溃日志 本指南提供了用于构建WebKit的指令在Windows ...

  8. [Spring Boot] Use Component Scan to scan for Bean

    Component Scan is important concept when we want to create Bean. Currently we know what, for the cla ...

  9. ZOJ 3456 Traveler Nobita 最小生成树

    Traveler Nobita Time Limit: 2 Seconds      Memory Limit: 65536 KB One day, Nobita used a time machin ...

  10. stl 迭代器失效

    1.对于基于连续内存的容器,容器元素的增删,有可能会导致迭代器的失效.考虑: int main(int argc, char* argv[]) { vector<int> intVec; ...