1

所以我试图在 qcustomplot 的 x 轴上绘制时间......我的问题是我如何才能拥有 x 轴的“刻度”,间隔为一小时(00:00、01:00、 02:00 ...等)。我的代码和结果如下:

代码:

ui->diagramArea->yAxis->setLabel("Thermocracy");
ui->diagramArea->yAxis->setRange(35,42);
ui->diagramArea->xAxis->setLabel("Hour of Measurement");
ui->diagramArea->xAxis->setTickLabelType(QCPAxis::ltDateTime);
ui->diagramArea->xAxis->setDateTimeFormat("hh:mm");
ui->diagramArea->xAxis->setRange(-7200,75600);   //that's because im gmt+2
ui->diagramArea->xAxis->setAutoTickStep(3600);
ui->diagramArea->addGraph();
ui->diagramArea->graph(0)->setBrush(QBrush(QColor(204,243,255)));
ui->diagramArea->graph(0)->setPen(pen);
ui->diagramArea->graph(0)->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssDisc, 5));
ui->diagramArea->graph(0)->setData(vTime,vData);
ui->diagramArea->replot();  

结果:

4

1 回答 1

2

尝试使用void QCPAxis::setTickStep ( double step)

ui->diagramArea->xAxis->setAutoTickStep(false);
ui->diagramArea->xAxis->setTickStep(3600);

http://www.qcustomplot.com/documentation/classQCPAxis.html#a99fe77b034e06f5b723995beab96e741

是否自动计算刻度步长,即两个(主要)刻度之间的间隔。如果 on 设置为 true,则轴会找到一个对人类可读的绘图来说合理的刻度步长。可以使用 setAutoTickCount 指定算法针对可见范围内的刻度数。如果将 on 设置为 false,您可以使用 setTickStep 手动设置刻度步长。

它需要布尔变量,因此您似乎设置了自动计算的步骤。

于 2014-10-11T19:57:14.160 回答