0

コアプロットのサンプルチュートリアルをたくさん見てきましたが、それらのほとんどに問題があります。iOSのコアプロットフレームワークを使用して、X軸とY軸でデータX =(Sep、Oct、Nov、Dec)およびY =(20,40,80,30)の折れ線グラフを作成するための実用的なチュートリアルを提供できる人はいますか?どんなコードでも私には大いに役立つでしょう。

4

1 に答える 1

3

コアプロットで線形グラフを作成する場合は、注意すべき点がいくつかあります。まず、ViewControllerが物事をグラフ化できるようにすることを確認してください。プロットデリゲート、プロットデータソース、およびプロットスペースデリゲートにする必要があります。

@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、configure Graphなどのすべてのコードをもう一度見てください。これは、CorePlotWebサイトにあります。覚えておくべきもう1つの重要なことは、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];
}

うまくいけば、これはあなたが始めるのに役立つでしょう。コアプロットは物事をグラフ化するための優れた方法であり、彼らのウェブサイトは素晴らしい情報でいっぱいです。お役に立てれば。

于 2013-02-21T16:25:16.630 に答える