2012-03-07 12 views
1

yAxisのmajorTickLocationsプロパティを事前定義された範囲の値で設定しています。また、yAxisのalternatingBandFillsプロパティを設定して、これらの範囲を色分けします。私のようにルックスを使用していたコードは次のとおりです。コアプロット:axesTrackLocationsが正しく表示されていない状態で交互に表示される軸

私はlowerRedRangeFrom = lowerOrangeRangeFromを持って使用していたデータの範囲の一部を:

 NSSet *majorTickLocations = [NSSet setWithObjects: 
           [NSDecimalNumber numberWithDouble:lowerRedRangeFrom], 
           [NSDecimalNumber numberWithDouble:lowerOrangeRangeFrom], 
           [NSDecimalNumber numberWithDouble:greenRangeFrom], 
           [NSDecimalNumber numberWithDouble:upperOrangeRangeFrom], 
           [NSDecimalNumber numberWithDouble:upperRedRangeFrom], 
           [NSDecimalNumber numberWithDouble:upperRedRangeTo], 
           nil]; 
    yAxis.majorTickLocations = majorTickLocations; 

    yAxis.alternatingBandFills = [NSArray arrayWithObjects: 
             [CPTColor redColor], 
             [CPTColor orangeColor], 
             [CPTColor greenColor], 
             [CPTColor orangeColor], 
             [CPTColor redColor], nil]; 

すべてが一つの特定の問題以外にも結構です。この場合、色分けされた範囲のうち3つだけが表示されます。これは問題ありません。これは予想される動作です。 alternatingBandFills配列は、赤、オレンジ、緑、オレンジ、赤の順で定義されているため、表示される色は赤 - オレンジ - 緑です。それは完全に上質で期待されています。

ただし、他のデータセットと同じロジックを持つデータセット(lowerRedRangeFrom = lowerOrangeRangeFrom)では、グラフのalternateBandFillが - > orange-green-orangeのように表示されます。

これがなぜこのような理由で私に説明できますか?混乱は、与えられたデータセットに対しては問題はなく、他のものについては(比率は同じですが)存在するという事実から来ています。私はCore-PlotがalternatinBandFills配列を循環して色を表示することを知っていますが、何らかの理由で時々配列の先頭ではなくインデックス= 1でサイクルを開始します。動作が正しいことを

おかげで、

ペタル

答えて

0

lowerRedRangeFrom == lowerOrangeRangeFromの場合、最初の赤い範囲はまだ存在しますが、高さは0です。