2013-02-21 128 views
0

我已經瀏覽了很多Core plot的示例教程,但其中大多數都存在問題。如果任何人都可以提供一個工作教程來創建數據X =(Sep,Oct,Nov,Dec)和Y =(20,40,80,30)和X & Y軸也使用iOS中的Core Plot框架的線圖嗎?任何代碼對我來說都會有很大的幫助。在iOS中創建帶有x軸和y軸的Coreplot線形圖

回答

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是繪製事物的絕佳方式,他們的網站充滿了很棒的信息。希望這可以幫助。

+0

是的,是的。它有很大的幫助..謝謝 – Shaunak 2013-02-22 03:59:35