コアプロットのサンプルチュートリアルをたくさん見てきましたが、それらのほとんどに問題があります。iOSのコアプロットフレームワークを使用して、X軸とY軸でデータX =(Sep、Oct、Nov、Dec)およびY =(20,40,80,30)の折れ線グラフを作成するための実用的なチュートリアルを提供できる人はいますか?どんなコードでも私には大いに役立つでしょう。
1 に答える
コアプロットで線形グラフを作成する場合は、注意すべき点がいくつかあります。まず、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];
}
うまくいけば、これはあなたが始めるのに役立つでしょう。コアプロットは物事をグラフ化するための優れた方法であり、彼らのウェブサイトは素晴らしい情報でいっぱいです。お役に立てれば。