プロット空間に表示する値の範囲を設定するには、プロット空間のxRangeとyRangeを設定する必要があります。ような何か:表示されるまで、実際のポイントを得るために
plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace;
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation: CPTDecimalFromDouble(-5.0) length: CPTDecimalFromDouble(10.0)];
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation: CPTDecimalFromDouble(-5.0) length: CPTDecimalFromDouble(10.0)];
、あなたは、グラフのDataSourceオブジェクトを設定する必要があり、それはデータソースのメソッドに応答する必要がある:あなたが1つしかない場合は
-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot;
-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index;
plotでは、numberForPlot:の最初の引数を無視できます。 2番目の引数は、ポイントのx軸値が必要な場合は0になり、ポイントのY軸値が必要な場合は1になります。 Indexはプロットのポイント番号です。ですから、NSArrayの中のデータは、その配列内の各オブジェクトは、xの別のNSArrayのあるmyDataArrayと呼ばれる持っていると仮定すると、yの値は、次のようなものがあります:あなたは固定で、データアレイを設定することができ
-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot;
{
return [myDataArray count];
}
-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index;
{
return [[myDataArray objectAtIndex: index] objectAtIndex: fieldEnum];
}
を以下のようなデータ:
NSArray *myDataArray = [NSArray arrayWithObjects:
[NSArray arrayWithObjects: [NSNumber numberWithInt: 2], [NSNumber numberWithInt: 3], nil],
[NSArray arrayWithObjects: [NSNumber numberWithInt: 3], [NSNumber numberWithInt: 2], nil],
[NSArray arrayWithObjects: [NSNumber numberWithInt: 5], [NSNumber numberWithInt: 5], nil],
nil];
は、私はあなたのplotSpaceコードを追加してみましたが、それは言う: 'エラー:セマンティック問題:宣言されていない識別子「plotSpace''の使用。私はnumerOfRecordsForPlotを持っていますが、現在はnumberForPlotではなく、10を返すように設定されています。これらの2つの関数の中にどのようなコードを入れるべきですか?ありがとう! –
OK - プロットスペース問題を修正しました、ありがとうございました!しかし、これらの2つの方法の本文については、まだ断ります。P –
上記の改訂版の回答を参照してください。 – Flyingdiver