Я пытаюсь построить некоторые данные, используя 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
включен.
Так я что-то упустил?
ОБНОВИТЬ: Я думал, что проблема возникает потому, что отключена ось
plots[i][j]->enableAxis(QwtPlot::yLeft, false);
plots[i][j]->enableAxis(QwtPlot::xBottom, false);
Но я прокомментировал это, и это не помогло.
Я считаю, что «автомасштаб» уже работает. Но чтобы ось выглядела хорошо, для округления требуется округленное число, что приводит к разрыву в конце. Весы QwtPlot управляются QwtScaleEngine. Вы можете получить указатель на scaleEngine по умолчанию для вашего графика, используя QwtPlot :: axisScaleEngine (…). настройка Floating
приписывать true
уберет этот пробел и подгонит ваши данные к границам. Смотрите документы: http://qwt.sourceforge.net/class_qwt_scale_engine.html
Пример:
plot.axisScaleEngine(QwtPlot::xBottom)->setAttribute(QwtScaleEngine::Floating,true);
При установке QwtScaleEngine :: Floating + QwtPlotLayout :: setAlignCanvasToScales (true) холст должен быть идеально выровнен по границам вашей кривой.