QCustomPlot实现极坐标图——QtWidgets
前言
前面用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相关推荐
- QtChart实现极坐标图(雷达图)——QtWidgets
1. 前言 突然好奇极坐标图(雷达图)是怎么实现的,就查了一下资料,发现有几种实现方法:一是QtChart实现:二是QCustomPlot实现:三是自绘.前两者都给了示例,所以我就学了学,后者自绘我尽 ...
- 《Qt开发》基于QPolarChart的极坐标图绘制
改程序包括以下内容: 绘制极坐标图,图中绘制散点 实现按键+-缩放,按键上下左右旋转缩放 头文件内容如下,其中加粗部分为添加内容 #ifndef POLARCHARTDEMO_H #define PO ...
- QCustomPlot 的使用-折线图和散点图
QCustomPlot 的使用 VS+QT+散点图 下载资源 https://www.qcustomplot.com/index.php/download 资源说明 在VS中创建项目,同时将.cpp和 ...
- qt之QCustomPlot与qchart初级应用-----绘制动态曲线
一.前言 早就想发这个帖子了,但由于单位项目比较紧,一直没腾出时间去学习和发博客,今天趁着再次接触了一下QCustomPlot,把上次要 发的qchart和QCustomPlot做的一些初级练习发出来 ...
- QCustomPlot使用手冊(三)
一.改变范围 QCustomPlot *customplot; customplot->setInteraction(QCP::iRangeDrag,true); 使控件能够拖拉. custom ...
- Ubuntu使用QCustomPlot简介
参考网址 https://blog.csdn.net/zyc_csdn/article/details/78840376 显示实时数据 https://blog.csdn.net/qq_2887712 ...
- QCustomPlot的简单用法总结
QCustomPlot的简单用法总结 第一部分:QCustomPlot的下载与安装 第二部分:QCustomPlot在VS2013+QT下的使用 QCustomPlot的简单用法总结 写在前面, ...
- python使用matplotlib可视化雷达图(polar函数可视化雷达图、极坐标图、通过径向方向来显示数据之间的关系)
python使用matplotlib可视化雷达图(polar函数可视化雷达图.极坐标图.通过径向方向来显示数据之间的关系) 目录
- python使用matplotlib可视化:折线图、条形图、柱状图、直方图、饼图、雷达图(极坐标图)
python使用matplotlib可视化:折线图.条形图.柱状图.直方图.饼图.雷达图(极坐标图) 目录
最新文章
- C++中的封装、继承、多态
- python就业前景-Python就业前景分析
- JAVA-初步认识-第三章-if语句练习-星期和季节
- 在 React 中使用 TypeScript
- Android技术专家 高焕堂 推荐这本书
- atitit.跨架构 bs cs解决方案. 自定义web服务器的实现方案 java .net jetty HttpListener
- 计算机网络考试系统考试终端学号,万维全自动网络考试系统
- 华为社招机考考什么_华为研发面试流程及机考题常出题型—亲历总结
- 【Android】自定义倒计时弹框(Handler/Timer/RxJava/持续更新)
- python怎么画圆并改变线条颜色_python – 更改plot_surface中的线条颜色
- h5禁用浏览器下载视频_【HTML5】video 标签禁用自带的下载按钮
- 顶尖领导者的52条法则!
- 【数据湖Hudi-8-Hudi集成Flink-入门】
- 【懒人福利】自动记录操作步骤
- python中json.loads报错: Expecting ‘,‘ delimiter: line 1 column 3545 (char 3544)
- 敏捷开发实践经验分享
- NOPI 读取EXCEL数据时报错“未将对象引用设置到对象的实例”的变相解决方案
- 【笔记】《adobe premiere cc PR入门基础教程,新手入门系列》
- “撸啊”不止能秒杀!| lua+redis实现高并发抢令牌
- 阿里云 mysql 收费_阿里云MySQL云数据库价格表(收费标准) - 新手站长网