QwtPlot具有相等的轴和自动缩放

时间:2018-10-30 17:05:41

标签: c++ qt qt5 qwt

我正在使用QWidgets开发Qt5应用程序。我正在使用Qwt-library中的QwtPlot在工具中绘制实时数据。我将绘图轴设置为通过ui.qwtPlot->setAxisAutoScale(axis)自动缩放,因为我想让绘图自动适应传入的数据。

现在,有些客户正在要求使用x和y轴间距相等的图。我找到了QwtPlotRescaler,这似乎是正确的选择。我已成功将其添加到我的绘图中,该绘图现在可以根据需要使用相等的轴。 (我可以通过其他按钮来禁用/启用此功能。)

但是我注意到,每当我激活相等的轴时,都会禁用自动缩放功能。有了动态输入的数据,我仍然希望有一个重新缩放的图。每当内容(图中的项目)发生更改时,轴应自动增长和收缩。因此,就像正常的自动缩放一样,但同时要使轴保持相等。我该如何存档?

您需要其他信息吗? 感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

假设您的y轴应取决于x轴,以便您的坐标系始终具有固定的长宽比。

然后,Qwt必须调整y轴的范围,并且必须忽略数据在y方向上的边界间隔-没有解决方案可以同时执行这两种操作。

可以做的是在x轴上添加额外的边距,以便y轴的范围根据宽高比增加-最后包括数据的边界间隔。但是,QwtPlotRescaler并没有实现实现此目标的良好利润。

但是,如果有帮助,自动缩放器所做的就是根据曲线的boundingRect调整比例。每当您更改数据时,也可以自行执行此操作。