QwtPlot с равными осями и автоматическим масштабированием - PullRequest
0 голосов
/ 30 октября 2018

Я разрабатываю приложение Qt5 с QWidgets. Я использую QwtPlot из Qwt-библиотеки для построения данных в реальном времени в моем инструменте. Я устанавливаю свою ось графика на автоматическое масштабирование с помощью ui.qwtPlot->setAxisAutoScale(axis), потому что я хочу, чтобы мой график автоматически приспосабливался к входящим данным.

Теперь некоторые клиенты запрашивают возможность иметь график с одинаково расположенными осями x и y. Я нашел QwtPlotRescaler, что кажется правильным для этой цели. Я успешно добавил его на свой график, который теперь имеет равные оси, если это необходимо. (Я могу отключить / включить эту функцию с помощью дополнительной кнопки.)

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

Вам нужна дополнительная информация? Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 30 октября 2018

Допустим, ваша ось y должна зависеть от оси x, чтобы у вас всегда было фиксированное соотношение сторон для вашей системы координат.

Затем Qwt должен отрегулировать диапазон оси y и игнорировать ограничивающий интервал данных в направлении y - решения для обоих вариантов не существует.

Что можно сделать, это добавить дополнительные поля к оси x, чтобы диапазон оси y увеличивался в соответствии с соотношением сторон - наконец, включая ограничивающий интервал данных. Но поиск хороших полей для этого не реализован QwtPlotRescaler.

Но если это поможет: все, что делает автоскалер, это настраивает шкалы в соответствии с ограничивающим ректом кривых. Вы также можете сделать это самостоятельно, когда вы меняете свои данные.

...