Qwt сюжет авто масштаб не работает

Я пытаюсь построить некоторые данные, используя qt 4.8 и qwt 6, но мои кривые не масштабируются по графику (1).

Вот как я прикрепляю кривые к графику:

curves[moduleIndex][channelIndex]->setSamples(samples, data);
curves[moduleIndex][channelIndex]->attach(plots[moduleIndex][channelIndex]);

samples и data — это QVectors и samples.size (), равный data.size ()

plots[moduleIndex][channelIndex]->axisAutoScale(QwtPlot::xBottom) возвращает истину, так autoScale включен.

Так я что-то упустил?

QWT сюжет авто масштаб

ОБНОВИТЬ: Я думал, что проблема возникает потому, что отключена ось

plots[i][j]->enableAxis(QwtPlot::yLeft, false);
plots[i][j]->enableAxis(QwtPlot::xBottom, false);

Но я прокомментировал это, и это не помогло.

QWT график автоматического масштаба с осью

2

Решение

Я считаю, что «автомасштаб» уже работает. Но чтобы ось выглядела хорошо, для округления требуется округленное число, что приводит к разрыву в конце. Весы QwtPlot управляются QwtScaleEngine. Вы можете получить указатель на scaleEngine по умолчанию для вашего графика, используя QwtPlot :: axisScaleEngine (…). настройка Floating приписывать true уберет этот пробел и подгонит ваши данные к границам. Смотрите документы: http://qwt.sourceforge.net/class_qwt_scale_engine.html

Пример:

plot.axisScaleEngine(QwtPlot::xBottom)->setAttribute(QwtScaleEngine::Floating,true);
3

Другие решения

При установке QwtScaleEngine :: Floating + QwtPlotLayout :: setAlignCanvasToScales (true) холст должен быть идеально выровнен по границам вашей кривой.

3

По вопросам рекламы [email protected]