下面是效果图
参考代码:
QString xFile = param["x_data"].toString();
QString yFile = param["y_data"].toString();
qreal xLow = param["x_range_low"].toDouble();
qreal xHigh = param["x_range_high"].toDouble();
qreal yLow = param["y_range_low"].toDouble();
qreal yHigh = param["y_range_high"].toDouble();
arma::vec SSPc;
SSPc.load(xFile.toStdString(), arma::raw_ascii);
arma::vec SSPz;
SSPz.load(yFile.toStdString(), arma::raw_ascii);
QCPCurve* curve = new QCPCurve(ui->widgetSoundProfile->xAxis, ui->widgetSoundProfile->yAxis);
curve->setPen(QPen(Qt::blue, 2.0));
QVector<QCPCurveData> curveData;
for (int i = 0; i < SSPc.size(); ++i)
{
curveData << QCPCurveData(i, SSPc(i), SSPz(i));
}
curve->data()->set(curveData, true);
double dx = SSPz.max() - SSPz.min();
ui->widgetSoundProfile->xAxis->setVisible(false);
ui->widgetSoundProfile->xAxis2->setVisible(true);
ui->widgetSoundProfile->xAxis2->setLabel(QStringLiteral("声速m/s"));
connect(ui->widgetSoundProfile->xAxis, SIGNAL(rangeChanged(QCPRange)), ui->widgetSoundProfile->xAxis2, SLOT(setRange(QCPRange)));
connect(ui->widgetSoundProfile->yAxis, SIGNAL(rangeChanged(QCPRange)), ui->widgetSoundProfile->yAxis2, SLOT(setRange(QCPRange)));
ui->widgetSoundProfile->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);
ui->widgetSoundProfile->yAxis->setLabel(QStringLiteral("深度m"));
ui->widgetSoundProfile->yAxis->setRangeReversed(true);
ui->widgetSoundProfile->xAxis->setRange(QCPRange(xLow, xHigh));
ui->widgetSoundProfile->yAxis->setRange(QCPRange(yLow, yHigh));
ui->widgetSoundProfile->replot();