График основной линии от линейного до логарифмического - PullRequest
0 голосов
/ 26 июня 2019

Возникла проблема с переключением с xScaleType .linear на .log (или .logModulus). Следующий код заставляет график исчезнуть в направлении X, то есть все еще может видеть ось Y и его отметки, но ось X исчезает, и на оси Y видна одна строка данных. Эта проблема возникает только в том случае, если вы перемещаетесь в крайнее левое положение Х 0. Если нет нуля, то нет проблем.

Если я начну с .log, то все хорошо. Я могу перемещаться / масштабировать до местоположения 0 без проблем, проблема возникает, если ранее было установлено значение .linear.

Код для воспроизведения:

// Set as linear
let plotSpace = ((hostView.hostedGraph as? CPTXYGraph)?.defaultPlotSpace as? CPTXYPlotSpace)
plotSpace?.xScaleType = .linear
plotSpace?.graph?.plot(withIdentifier: plotId as NSCopying?)?.reloadData()

// Some UI user interaction to trigger next code

// Set as log (or logModulus)
plotSpace?.xScaleType = .log
plotSpace?.graph?.plot(withIdentifier: plotId as NSCopying?)?.reloadData()

// Pan to location 0(if not already there).

Кто-нибудь сталкивался с этим или есть обходной путь?

1 Ответ

0 голосов
/ 26 июня 2019

Тип масштаба .log не может обработать диапазон графика, который включает ноль (0), потому что log(0) не определено.Тип шкалы .logModulus предназначен для этого случая.Обратите внимание, что вам также, вероятно, необходимо обновить некоторые параметры маркировки при переключении между типами шкалы.По умолчанию основные отметки в шкале лога разделены степенями десяти.В зависимости от диапазона графика логарифмический масштаб может даже не охватывать один основной интервал между тиками.

...