core-plot scatter での小技メモ


1)Y軸のラベルを固定(スクロールしない)

CPTXYAxis *y = axisSet.yAxis;
y.axisConstraints = [CPTConstraints constraintWithLowerOffset:0.0];

2)Y軸のmajorIntervalLengthにグリッドをひく
lineStyleをなにか設定して。

CPTXYAxis *y = axisSet.yAxis;
y.majorGridLineStyle = lineStyle;

3)グリッドのベース線とグリッド線を値の最大のところまでのみ表示

y.visibleRange   = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInteger(0)
length:CPTDecimalFromInteger(yの最大値)];
y.gridLinesRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInteger(0)
length:CPTDecimalFromInteger(xの最大値)];

※y.gridLinesRangeはxの最大値であることに注意

4)y軸方向にはスクロールしない、かつXは0以下にスクロールしない
ヘッダに <CPTPlotSpaceDelegate>を追加して、

-(CGPoint)plotSpace:(CPTPlotSpace *)space willDisplaceBy:(CGPoint)displacement
{
    CGFloat x = displacement.x;
    float loc = [[NSDecimalNumber decimalNumberWithDecimal:[((CPTXYPlotSpace*)space).xRange location]] floatValue];
    if (loc < 0 && x > 0) x = 0;
    return CGPointMake(x, 0);
}
-(CPTPlotRange *)plotSpace:(CPTPlotSpace *)space willChangePlotRangeTo:(CPTPlotRange *)newRange forCoordinate:(CPTCoordinate)coordinate
{
    if (coordinate == CPTCoordinateY) {
        newRange = ((CPTXYPlotSpace*)space).yRange;
    }
    return newRange;
}

参考:
iphone – Core plot disable y axes scaling, scrolling – Stack Overflow
iphone – Allow horizontal scrolling only in the core-plot barchart? – Stack Overflow の最後のコメント

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中