在iOS中使用x和y轴创建Coreplot线图

时间:2013-02-21 12:19:08

标签: ios core-plot linegraph

我已经查看了很多关于Core plot的示例教程,但是大多数都有问题。如果任何人都可以提供一个工作教程来创建具有数据X =(9月,10月,11月,12月)和Y =(20,40,80,30)的X& Y轴还在iOS中使用Core Plot框架?任何代码对我都有帮助..

1 个答案:

答案 0 :(得分:3)

如果您想在核心图中制作线性图,请记住一些事项。首先确保您使视图控制器能够绘制图形。您需要将其设置为绘图委托,绘制数据源和绘图空间委托。

@interface ViewController : UIViewController <CPTScatterPlotDelegate, CPTPlotSpaceDelegate, CPTPlotDataSource>

这是在.h文件中添加的。 **别忘了导入CorePlot-cocoaTouch.h!

接下来,在视图中确实出现了一种方法,您可能希望将变量放入数组中。以下是我制作快速线性图的示例。

- (void)viewDidAppear:(BOOL)animated
{
float b = 1;
float c = 5;

Xmax = 10;
Xmin = -10;
Ymax = 10;
Ymin = -10;

float inc = (Xmax - Xmin) / 100.0f;
float l = Xmin;

NSMutableArray *linearstuff = [NSMutableArray array];

for (int i = 0; i < 100; i ++)
{
    float y = (b * (l)) + c;
    [linearstuff addObject:[NSValue valueWithCGPoint:CGPointMake(l, y)]];
    NSLog(@"X and Y = %.2f, %.2f", l, y);
    l = l + inc;
}

self.data = linearstuff;
[self initPlot];
}

对[self initPlot]的调用调用一个函数来实际制作图形。它与那里的所有示例代码非常相似。

将数据放入数组后,下一步就是按照您希望的方式显示图形。再看一下configureHost的所有代码,配置Graph,以及类似的东西,它就在Core Plot网站上。另一个要记住的重要事项是numberOfRecordsForPlot方法。这是我的样本。这可以让您知道您拥有多少数据点。

- (NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
{
return [_data count];
}

_data是我用来存储一切的数组。接下来,您要绘制数据图表。使用numberForPlot方法。这里再一次是一个样本。

- (NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
{
NSLog(@"numberForPlot");
if ([plot.identifier isEqual:@"linear"])
{
    NSValue *value = [self.data objectAtIndex:index];
    CGPoint point = [value CGPointValue];

    // FieldEnum determines if we return an X or Y value.
    if (fieldEnum == CPTScatterPlotFieldX) 
    {
        return [NSNumber numberWithFloat:point.x];

    }
    else    // Y-Axis
    {
        return [NSNumber numberWithFloat:point.y];

    }
    NSLog(@"x is %.2f", point.x);
    NSLog(@"y is %.2f", point.y);
}
return [NSNumber numberWithFloat:0];
}

希望这会让你开始。 Core Plot是绘制事物的绝佳方式,他们的网站充满了很多信息。希望这会有所帮助。