Coreplot - изменение цвета линии данных (в середине динамической ситуации)

Я динамически строю графики на моем iPhone из значений, полученных от модуля BLE с использованием CorePlot. Я нашел инициализатор для CPTLineStyle класс и изменил lineColor свойство от черного до зеленого. В настоящее время я использую CPTPlainBlackTheme тематический класс.

Моя строка данных Scatter Plot теперь зеленая... однако я пытаюсь заставить этот новый сценарий работать. Я добавил кнопку "Захват", которая запускает таймер для сбора важных значений данных и их сохранения в области (текущее значение по умолчанию - 1 минута сбора). Как только эта кнопка нажата, я хочу, чтобы линия данных на графике перейти от зеленого до, скажем, белого.

Кроме того, в качестве дополнения (просто для того, чтобы разграничить разницу между общими и важными данными), я хотел бы иметь возможность сделать черный фон немного светлее, начиная с того момента, когда нажата кнопка Capture. Представьте, что линия данных поступает, и тогда, когда нажата кнопка Capture, прямоугольный квадрат (светлее по сравнению с простым черным фоном и растягивающийся до верха и низа отступа графика) теперь покрывает данные, как серое одеяло.

Вот что у меня есть для этой линии:

CPTMutableLineStyle *anotherLine = [CPTMutableLineStyle lineStyle];
anotherLine.lineColor = [CPTColor whiteColor];

Как мне применить этот новый lineStyleи к какому объекту? CPTGraph, CPTScatterPlot, CPTXYPlotSpace?

1 ответ

Решение

Если вы хотите изменить цвет всей линии графика, установите dataLineStyle в новый стиль. Чтобы сделать часть линии одним цветом, а остальные - другим, вам нужно использовать два графика, по одному для каждого цвета.

Для фона, посмотрите на -addAreaFillBand: метод. Вы можете использовать столько групп, сколько захотите. См. "Градиент рассеяния" в примере приложения Plot Gallery для примера кода.

Другие вопросы по тегам