SciChart AutoRange не работает должным образом для небольших значений - PullRequest
0 голосов
/ 14 февраля 2019

Я обнаружил, что AutoRange на оси Y не работает должным образом, когда значения диаграммы очень малы.См. Пример:

Работает хорошо (нормальные значения):

enter image description here

Не работает хорошо (небольшие значения):

enter image description here

Я действительно могу нажать несколько раз, чтобы увеличить его, вот максимальный экстент:

enter image description here

Как вы можете видеть

  • Автоматический диапазон не применяется автоматически
  • Я не могу увеличить масштаб, чтобы заполнить весь диапазон Y
  • Индикатор MACDДиаграмма имеет ту же проблему

Я создаю ось Y следующим образом, когда создаю модель:

            this.yAxis = builder.newNumericAxis()
                    .withAxisId(PRICES)
                    .withAutoRangeMode(AutoRange.Once)
//                    .withDrawMinorGridLines(true)
//                    .withDrawMajorGridLines(true)
//                    .withMinorsPerMajor(4)
//                    .withMaxAutoTicks(8)
//                    .withGrowBy(new DoubleRange(0.000001d, 0.000001d))
                    .withLabelProvider(new NumericLabelProviderPrice(currency))
                    .build();

Эксперимент с различными параметрами withGrowBy дал ограниченные результаты.


Как мне заставить Y AutoRange работать автоматически, независимо от того, являются ли значения диаграммы большими (> 1000) или маленькими (<0,01)? </p>

1 Ответ

0 голосов
/ 15 февраля 2019

Можете ли вы попытаться установить MinimalZoomConstrain = 0?

yAxis.setMinimalZoomConstrain(0d);

Это должно отключить любые ограничения глубины увеличения.

По умолчанию NumericAxisBuilder устанавливает его в 0,01 напредотвратить очень глубокое масштабирование диаграммы, и если VisibleRange не удовлетворяет MinimalZoomConstrain, то ось сбрасывает его к значению по умолчанию, которое равно (0, 10) в случае NumericAxis.

...