Qwt:每十年对数刻度和滴答声
Qwt: log scale and ticks every 10th of a decade
我制作了一个带有 x 对数刻度和 y 线性刻度的 QwtPlot。 x 轴范围固定为 10 到 1000,即 3 个十进制数。 A 添加了一个有主要和次要划分的网格。
问题:次要报价落在一些自动计算的位置。
我想要的是:每十年一次的小刻度(20、30、...、200、300、...)。
我试过试玩,遵循随处可见的各种示例。但是我尝试过的任何事情都没有改变。我确定我错过了 Qwt 文档中的某些内容...
Qwt 版本:6.1.4
我明白了。在 QwtPlot 的子类中:
setAxisAutoScale(QwtPlot::xBottom, false);
xlogScale = new QwtLogScaleEngine();
QwtScaleDiv xDiv = xlogScale->divideScale(10.0, 1000.0, 2, 10, 1.0);
setAxisScaleEngine(QwtPlot::xBottom, xlogScale);
setAxisScaleDiv(QwtPlot::xBottom, xDiv);
关键是第3行,设置x轴刻度。
出于某种原因,我很难理解函数期望的参数:
- 从 10 到 1000
- 2个主要步骤
- 每十年 10 个小步骤
- 主要步长 = 1 decade
还有,不要打电话给 QwtPlot::setAxisScale()
!它会将所有内容重置为默认值。
希望对您有所帮助!
我制作了一个带有 x 对数刻度和 y 线性刻度的 QwtPlot。 x 轴范围固定为 10 到 1000,即 3 个十进制数。 A 添加了一个有主要和次要划分的网格。
问题:次要报价落在一些自动计算的位置。
我想要的是:每十年一次的小刻度(20、30、...、200、300、...)。
我试过试玩,遵循随处可见的各种示例。但是我尝试过的任何事情都没有改变。我确定我错过了 Qwt 文档中的某些内容...
Qwt 版本:6.1.4
我明白了。在 QwtPlot 的子类中:
setAxisAutoScale(QwtPlot::xBottom, false);
xlogScale = new QwtLogScaleEngine();
QwtScaleDiv xDiv = xlogScale->divideScale(10.0, 1000.0, 2, 10, 1.0);
setAxisScaleEngine(QwtPlot::xBottom, xlogScale);
setAxisScaleDiv(QwtPlot::xBottom, xDiv);
关键是第3行,设置x轴刻度。 出于某种原因,我很难理解函数期望的参数:
- 从 10 到 1000
- 2个主要步骤
- 每十年 10 个小步骤
- 主要步长 = 1 decade
还有,不要打电话给 QwtPlot::setAxisScale()
!它会将所有内容重置为默认值。
希望对您有所帮助!