3

我正在尝试使用 qt 4.8 和 qwt 6 绘制一些数据,但我的曲线不会在 plot ( 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启用。

所以我错过了什么吗?

qwt 绘图自动缩放

更新:我认为问题是因为禁用轴

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

但我已经评论了它并没有帮助。

qwt 绘制带轴的自动缩放

4

2 回答 2

4

我相信“自动缩放”已经在起作用。但是为了使轴看起来不错,它需要一个四舍五入的最大值,这会导致最后出现间隙。QwtPlot 的比例由 QwtScaleEngine 管理。您可以使用 QwtPlot::axisScaleEngine(...) 获得指向默认 scaleEngine 绘图的指针。将Floating属性设置为true将消除此差距,并使您的数据适合边界。请参阅文档:http: //qwt.sourceforge.net/class_qwt_scale_engine.html

前任:

plot.axisScaleEngine(QwtPlot::xBottom)->setAttribute(QwtScaleEngine::Floating,true);
于 2013-02-04T12:50:57.090 回答
4

设置 QwtScaleEngine::Floating + QwtPlotLayout::setAlignCanvasToScales( true ) 时,画布应与曲线的边界完美对齐。

于 2013-02-04T16:25:53.090 回答