效果图如下:
代码:
mCurveData = new QLineSeries();
arma::vec theta;
theta.load(xFile.toStdString(), arma::raw_ascii);
arma::vec rou;
rou.load(yFile.toStdString(), arma::raw_ascii);
for (int i = 0; i < theta.size(); ++i)
{
double x = theta(i);
mCurveData->append(theta(i) * 180.0 / PI, rou(i));
}
mPolarChart = new QPolarChart();
mPolarChart->addSeries(mCurveData);
mPolarChart->legend()->hide();
mPolarChart->setTheme(QChart::ChartThemeQt);
mPolarChart->setTitle(QStringLiteral("潜艇目标强度极坐标图"));
//坐标轴
mThetaAxis = new QValueAxis();
mThetaAxis->setTickCount(13);
mThetaAxis->setLabelFormat("%d");
mThetaAxis->setRange(0, 360);
mPolarChart->addAxis(mThetaAxis, QPolarChart::PolarOrientationAngular);
mRadiusAxis = new QValueAxis();
mRadiusAxis->setTickCount(6);
mRadiusAxis->setLabelFormat("%ddB");
mRadiusAxis->setRange(0, 30);
mPolarChart->addAxis(mRadiusAxis, QPolarChart::PolarOrientationRadial);
mCurveData->attachAxis(mRadiusAxis);
mCurveData->attachAxis(mThetaAxis);
mChartView = new QChartView();
mChartView->setChart(mPolarChart);
mChartView->setFont(QFont("Consolas", 16));
mChartView->setRenderHint(QPainter::Antialiasing);