如何在 QwtPlot 上设置固定数量的刻度

Posted

技术标签:

【中文标题】如何在 QwtPlot 上设置固定数量的刻度【英文标题】:How to set a fixed number of ticks on QwtPlot 【发布时间】:2016-09-19 23:06:22 【问题描述】:

QwtPlot 滴答声有问题。

QwtPlot的X轴是这样的:

我将 AxisMaxMajor 设置为 24:

dataPlot->setAxisMaxMajor(QwtPlot::xBottom, 24);

但这并没有解决我的问题。

我需要正好 23 个刻度 (1~23) 来表示一天中的每个小时。我该怎么做?

Qwt 6.1.0

Qt 5.3.2

【问题讨论】:

【参考方案1】:

当需要与日期/时间相关的刻度时,您需要使用QwtDateScaleEngine。如果有 1-24 的内容,则不会出现基于十进制系统的缩放引擎。

如果 QwtDateScale 类不适合您的用例,您可以选择手动设置刻度 (QwtPlot::setAxisScaleDiv())。

如果您无法控制轴范围(例如由于缩放),最终的后备解决方案是实现您自己的 QwtScaleEngine 类型。这听起来更容易,因为它只是意味着在给定范围内每小时返回一个刻度。

【讨论】:

谢谢@Uwe。我无法控制轴范围(因为缩放),那么我想我需要像你说的那样实现我自己的 QwtScaleEngine 类型。你能提供一个简单的例子来说明我该怎么做吗?

以上是关于如何在 QwtPlot 上设置固定数量的刻度的主要内容,如果未能解决你的问题,请参考以下文章

在 QwtPlot scaleDraw 中绘制向内刻度

如何使用 Qt/QwtPlot 设置固定轴间隔?

在 QwtPlot 中使用 QTime 作为 X 轴

如何在 python 中的 x qwtplot 轴上放置日期?

如何限制 QwtPlot 可以缩小到的最大范围?

如何在 QwtPlot 图上方放置一个条形图?