Основной график: ось, чередующаяся, заполняет и отображает основные позиции в правильном отображении - PullRequest
1 голос
/ 07 марта 2012

Я устанавливаю свойство majorTickLocations для yAxis с некоторыми предопределенными значениями диапазонов.Я также устанавливаю свойство alternatingBandFills yAxis для цветового кодирования этих диапазонов.Код, который я использую, выглядит следующим образом:

     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];

Все хорошо, кроме одной конкретной проблемы:

Некоторые диапазоны данных, которые я использую, имеют lowerRedRangeFrom = lowerOrangeRangeFrom.Что произойдет, если это так, отображаются только 3 диапазона с цветовой кодировкой, что нормально, и это ожидаемое поведение.Поскольку массив alternatingBandFills определяется в следующем порядке -> красный, оранжевый, зеленый, оранжевый, красный, показанные цвета являются красно-оранжево-зелеными.Это вполне нормально и ожидаемо.

Однако в некоторых наборах данных, которые имеют ту же логику, что и другие (например, lowerRedRangeFrom = lowerOrangeRangeFrom), чередующиесяBandFills графика отображаются как -> orange-green-orange,

Может кто-нибудь объяснить мне, почему это так?Путаница возникает из-за того, что для данного набора данных нет проблем, а для других есть (хотя пропорции одинаковы).Я знаю, что Core-Plot будет циклически проходить по массиву alternatinBandFills и отображать цвета, но по некоторым причинам иногда он начинает циклически работать с индексом = 1, а не с начала в массиве.

Спасибо,

Петар

1 Ответ

0 голосов
/ 15 марта 2012

Это поведение правильно.Если lowerRedRangeFrom == lowerOrangeRangeFrom, то первый красный диапазон все еще там, но у него 0 высот.

...