我正在尝试使用qt 4.8和qwt 6绘制一些数据,但我的曲线不会缩放到绘图上(1)。
这是我将曲线附加到绘图的方式:
curves[moduleIndex][channelIndex]->setSamples(samples, data);
curves[moduleIndex][channelIndex]->attach(plots[moduleIndex][channelIndex]);
样本和数据是QVectors,samples.size()等于data.size()
plots[moduleIndex][channelIndex]->axisAutoScale(QwtPlot::xBottom)
返回true,因此autoScale
已启用。
我错过了什么?
更新:我认为问题发生是因为禁用了轴
plots[i][j]->enableAxis(QwtPlot::yLeft, false);
plots[i][j]->enableAxis(QwtPlot::xBottom, false);
但我已经评论过它并没有帮助。
答案 0 :(得分:3)
我相信'自动缩放'已经在工作了。但是为了使轴看起来很好,它需要一个最大值的舍入数字,这会导致最后的间隙。 QwtPlot的比例由QwtScaleEngine管理。您可以使用QwtPlot :: axisScaleEngine(...)获取指向默认scaleEngine的指针。将Floating
属性设置为true
将消除此差距,并使您的数据符合边界。请参阅文档:http://qwt.sourceforge.net/class_qwt_scale_engine.html
例如:
plot.axisScaleEngine(QwtPlot::xBottom)->setAttribute(QwtScaleEngine::Floating,true);
答案 1 :(得分:3)
设置QwtScaleEngine :: Floating + QwtPlotLayout :: setAlignCanvasToScales(true)时,画布应与曲线的边界完全对齐。