初始化QChart极坐标图(含曲线、散点)

步骤一

第一步.pro头文件中

QT  +=charts

步骤二:

.h文件中

//以下是QtChart使用必备的几个
#include <QtCharts/QChartView>
#include <QtCharts/QPolarChart>
#include <QtCharts/QScatterSeries>
QT_CHARTS_USE_NAMESPACE

#include <QLineSeries>
#include <QValueAxis>
    void InitPolarChart(QChartView *chartViewWD);               //初始极坐标绘图区域

    QLineSeries *seriesWD;  //曲线声明
    QScatterSeries *seriesWD2;
    QPolarChart *chartWD; //极坐标图表声明
    QValueAxis *angleAxis; //角坐标,相对应于直角坐标系的X轴
    QValueAxis* radiaAxis;//极坐标,相对应于直角坐标系的Y轴
    QChartView* chartViewWD; //画布声明

步骤三

函数

/**********************************************
* @projectName   IUADS_UG
* @brief         初始化QChartview绘图
* @param         void
* @return        void
* @author        ZYH
* @date          2021-06-29
**********************************************/
void Target_Detectiom::InitPolarChart(QChartView *chartViewWD)
{
    chartViewWD->setStyleSheet(QString("color:rgba(255,255,255,255);background-color:rgba(100,100,100,100)"));
    //曲线
    seriesWD = new QLineSeries();     //新建一条曲线
    seriesWD->setName("目标探测");
    seriesWD->setPen(QPen(QBrush(Qt::green),2,Qt::DashLine));
    seriesWD2 = new QScatterSeries();     //新建一条散点
    seriesWD2->setName("目标跟踪");
    seriesWD2->setBrush(Qt::red);
    seriesWD2->setMarkerSize(7);
    seriesWD2->setPen(QPen(QBrush(Qt::red),1,Qt::DashLine));
    //图表配置
    chartWD = new QPolarChart();  //新建一个极坐标系的图
    chartWD->addSeries(seriesWD); //为图表添加一条曲线
    chartWD->addSeries(seriesWD2); //为图表添加一条曲线
    //    chartWD->setTheme(QChart::ChartThemeDark);  //设置图表theme
    //    series5->setOpacity(0.5);
    //坐标轴
    angleAxis = new QValueAxis();
    angleAxis->setTickCount(13);
    //    angleAxis->setLabelFormat("%.1f");
    angleAxis->setLabelFormat("%d");
    angleAxis->setShadesVisible(true);
    angleAxis->setLabelsColor(Qt::white);
    angleAxis->setShadesBrush(QBrush(QColor(72, 72, 72)));
    chartWD->addAxis(angleAxis, QPolarChart::PolarOrientationAngular);

    QValueAxis *radialAxis = new QValueAxis();
    radialAxis->setTickCount(1);
    radialAxis->setLabelFormat("%.2f");
    radialAxis->setLabelsColor(Qt::white);
    chartWD->addAxis(radialAxis, QPolarChart::PolarOrientationRadial);
    chartWD->setBackgroundVisible(false);
    seriesWD->attachAxis(radialAxis);
    seriesWD->attachAxis(angleAxis);
    seriesWD2->attachAxis(radialAxis);
    seriesWD2->attachAxis(angleAxis);



    chartViewWD->setChart(chartWD);
    chartViewWD->setRenderHint(QPainter::Antialiasing);

    // chartViewWD->setStyleSheet(R"(QGraphicsView{background-image:url(:/image/111/t_bg.png);})");
    //    chartWD->setTitle("目标探测");
    //chartWD->setTitleBrush(Qt::white);
    chartWD->legend()->setLabelColor(Qt::white);
    QFont ft;
    ft.setPointSize(11);
    chartWD->legend()->setFont(ft);
    radialAxis->setRange(0, 1);
    angleAxis->setRange(0, 360);
}

最后使用时候

//以如下方式放数据
seriesWD->append(角度,);   //这个被初始化为一条曲线
seriesWD2->append(角度,);   //这个被初始化为红色的散点

最终实现图的样式
在这里插入图片描述

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值