前言

前面用QtChart实现了极坐标图,感觉不是很方便,特别是一些点的图形,一般需要自己绘制,而QCustomPlot自带挺多的;还有极坐标的角度轴(即 圆圈),相比起来,QCustomPlot更为清晰。

QtChart 与 QCustomPlot各方面对比

Qwt、QChart、QCustomPlot使用_qcustomplot qwt_mahuifa的博客-CSDN博客

这个博客里面写的很好,美观、使用、性能方面都进行了对比。

资源地址和版本

QCustomPlot的下载地址:Qt Plotting Widget QCustomPlot - Download

版本: Version 2.1.0 released on 29.03.21

准备工作

我是下载最大的那个,里面还有源码、示例还有帮助文档,帮助文档还可以加在Qt的帮助文档中使用,只要将 qcustomplot\documentation\qcustomplot.qch 放到Qt的安装目录 Qt5.xx.x\Docs\Qt-5.xx.x中,Qt就可以在自动识别出来。

我是直接将qcustomplot.cpp文件和qcustomplot.h文件直接加到项目中的,不过还要在pro文件里加 库 printsupport ,QCustomPlot里面用到了。

QT += printsupport

说明和代码

QCustomPlot使用更为简单,大概分为三部分:

:一般的视图自带 x1y1轴和x2y2轴。不过极坐标轴跟平时的不一样,用QCPPolarAxisAngular

线图(数据):常见的折线图之类的是CPGraph,一般使用函数addGraph创建对象,它创建后,是保存在容器QList里的,故可根据索引获取,如下;不过极坐标图用的是QCPPolarGraph,它也需要重新设置。

  customPlot->addGraph();customPlot->graph(0)->setPen(QPen(Qt::blue));

视图:即QCustomPlot,它继承的是QWidget,所以可以在QtDesigner上将QWidget提升为QCustomPlot。

对了,有一点是,在QCustomPlot自带的极坐标示例代码中,有一句话

// Warning: Polar plots are a still a tech preview

他只是一个预览,还不成熟,所以在实际项目中,可能会出现问题。

代码如下,和我之前用QtChart写的极坐标相似。

void FirstCustomPlot::polarPlotDemo()
{ui->qcustomplot->plotLayout()->clear();QCPPolarAxisAngular* angularAxis=new QCPPolarAxisAngular(ui->qcustomplot);ui->qcustomplot->plotLayout()->addElement(0,0,angularAxis);ui->qcustomplot->setInteractions(QCP::iRangeDrag|QCP::iRangeZoom);angularAxis->setRangeDrag(false);angularAxis->setTickLabelMode(QCPPolarAxisAngular::lmUpright);angularAxis->radialAxis()->setTickLabelRotation(0);angularAxis->radialAxis()->setAngle(45);angularAxis->grid()->setAngularPen(QPen(QColor(200,200,200),0,Qt::SolidLine));angularAxis->grid()->setSubGridType(QCPPolarGrid::gtAll);QCPPolarGraph* g1=new QCPPolarGraph(angularAxis,angularAxis->radialAxis());QCPPolarGraph* g2=new QCPPolarGraph(angularAxis,angularAxis->radialAxis());g2->setPen(QPen(QColor(255,150,20)));g2->setBrush(QColor(255,150,20,50));g1->setScatterStyle(QCPScatterStyle::ssStar);g1->setPen(QPen(Qt::blue));
//    g1->setLineStyle(QCPPolarGraph::lsNone);for(int i=0;i<100;i++){g1->addData(i/100.0*360.0,qSin(i/100.0*M_PI*8)*8+1);g2->addData(i/100.0*360.0,qSin(i/100.0*M_PI*6)*2);}angularAxis->setRange(0,360);angularAxis->radialAxis()->setRange(-10,10);
}

效果图

QCustomPlot实现极坐标图——QtWidgets相关推荐

  1. QtChart实现极坐标图(雷达图)——QtWidgets

    1. 前言 突然好奇极坐标图(雷达图)是怎么实现的,就查了一下资料,发现有几种实现方法:一是QtChart实现:二是QCustomPlot实现:三是自绘.前两者都给了示例,所以我就学了学,后者自绘我尽 ...

  2. 《Qt开发》基于QPolarChart的极坐标图绘制

    改程序包括以下内容: 绘制极坐标图,图中绘制散点 实现按键+-缩放,按键上下左右旋转缩放 头文件内容如下,其中加粗部分为添加内容 #ifndef POLARCHARTDEMO_H #define PO ...

  3. QCustomPlot 的使用-折线图和散点图

    QCustomPlot 的使用 VS+QT+散点图 下载资源 https://www.qcustomplot.com/index.php/download 资源说明 在VS中创建项目,同时将.cpp和 ...

  4. qt之QCustomPlot与qchart初级应用-----绘制动态曲线

    一.前言 早就想发这个帖子了,但由于单位项目比较紧,一直没腾出时间去学习和发博客,今天趁着再次接触了一下QCustomPlot,把上次要 发的qchart和QCustomPlot做的一些初级练习发出来 ...

  5. QCustomPlot使用手冊(三)

    一.改变范围 QCustomPlot *customplot; customplot->setInteraction(QCP::iRangeDrag,true); 使控件能够拖拉. custom ...

  6. Ubuntu使用QCustomPlot简介

    参考网址 https://blog.csdn.net/zyc_csdn/article/details/78840376 显示实时数据 https://blog.csdn.net/qq_2887712 ...

  7. QCustomPlot的简单用法总结

    QCustomPlot的简单用法总结 第一部分:QCustomPlot的下载与安装 第二部分:QCustomPlot在VS2013+QT下的使用 QCustomPlot的简单用法总结    写在前面, ...

  8. python使用matplotlib可视化雷达图(polar函数可视化雷达图、极坐标图、通过径向方向来显示数据之间的关系)

    python使用matplotlib可视化雷达图(polar函数可视化雷达图.极坐标图.通过径向方向来显示数据之间的关系) 目录

  9. python使用matplotlib可视化:折线图、条形图、柱状图、直方图、饼图、雷达图(极坐标图)

    python使用matplotlib可视化:折线图.条形图.柱状图.直方图.饼图.雷达图(极坐标图) 目录

最新文章

  1. C++中的封装、继承、多态
  2. python就业前景-Python就业前景分析
  3. JAVA-初步认识-第三章-if语句练习-星期和季节
  4. 在 React 中使用 TypeScript
  5. Android技术专家 高焕堂 推荐这本书
  6. atitit.跨架构 bs cs解决方案. 自定义web服务器的实现方案 java .net jetty  HttpListener
  7. 计算机网络考试系统考试终端学号,万维全自动网络考试系统
  8. 华为社招机考考什么_华为研发面试流程及机考题常出题型—亲历总结
  9. 【Android】自定义倒计时弹框(Handler/Timer/RxJava/持续更新)
  10. python怎么画圆并改变线条颜色_python – 更改plot_surface中的线条颜色
  11. h5禁用浏览器下载视频_【HTML5】video 标签禁用自带的下载按钮
  12. 顶尖领导者的52条法则!
  13. 【数据湖Hudi-8-Hudi集成Flink-入门】
  14. 【懒人福利】自动记录操作步骤
  15. python中json.loads报错: Expecting ‘,‘ delimiter: line 1 column 3545 (char 3544)
  16. 敏捷开发实践经验分享
  17. NOPI 读取EXCEL数据时报错“未将对象引用设置到对象的实例”的变相解决方案
  18. 【笔记】《adobe premiere cc PR入门基础教程,新手入门系列》
  19. “撸啊”不止能秒杀!| lua+redis实现高并发抢令牌
  20. 阿里云 mysql 收费_阿里云MySQL云数据库价格表(收费标准) - 新手站长网

热门文章

  1. 形态学处理梯度、顶帽、黑帽
  2. matlab非线性整数优化,fmincon整数优化
  3. 各类数字调制系统仿真与误码率分析
  4. 正则表达式中括号的多义性
  5. 【GamePlay】三消核心算法
  6. U盘PE安装XP原版镜像的方法(ZT)
  7. C语言字符串替换函数(strrpl)
  8. CSS 弹性布局/flex布局最后一行左对齐
  9. windows如何显示文件扩展名称?
  10. arm linux 2.6下载,ARM+LINUX(montavista2.6.x)环境下SIMCOM5218使用