QCustomplot---动态图

QCustomplot绘制动态曲线图-游标及鼠标跟踪显示数值_qcustomplot 游标-CSDN博客

       m_timer = new QTimer(this);connect(m_timer,SIGNAL(timeout()),this,SLOT(slotTimeout()));m_timer->start(50);
void MainWindow::slotTimeout()
{static int p=0;static int i=0;double m,m1,m2;m2=i/50.0 - 1;//-1,1m= m2+p;//-1+p,1+pm1 = m2*m2;if(i==101)i=0;else i++;ui->plotWidget->graph(0)->addData(m,m1);ui->plotWidget->xAxis->setRange(-1,1+p);ui->plotWidget->replot();qDebug()<<"p:"<<p;p++;
}

关键:

    ui->plotWidget->graph(0)->addData(m,m1);ui->plotWidget->xAxis->setRange(-1,1+p);ui->plotWidget->replot();

添入数据,重新设置Range,再次刷新。

学习QCustomPlot【1】QCustomPlot介绍-CSDN博客

从官网下载下来源码后,可以编译学习人家提供的源码(位置:qcustomplot\examples\plots)

  //setupPlayground(ui->customPlot);// 0:  setupQuadraticDemo(ui->customPlot);// 1:  setupSimpleDemo(ui->customPlot);// 2:  setupSincScatterDemo(ui->customPlot);// 3:  setupScatterStyleDemo(ui->customPlot);// 4:  setupScatterPixmapDemo(ui->customPlot);// 5:  setupLineStyleDemo(ui->customPlot);// 6:  setupDateDemo(ui->customPlot);// 7:  setupTextureBrushDemo(ui->customPlot);// 8:  setupMultiAxisDemo(ui->customPlot);// 9:  setupLogarithmicDemo(ui->customPlot);// 10: setupRealtimeDataDemo(ui->customPlot);// 11: setupParametricCurveDemo(ui->customPlot);// 12: setupBarChartDemo(ui->customPlot);// 13: setupStatisticalDemo(ui->customPlot);// 14: setupSimpleItemDemo(ui->customPlot);// 15: setupItemDemo(ui->customPlot);// 16: setupStyledDemo(ui->customPlot);// 17: setupAdvancedAxesDemo(ui->customPlot);// 18: setupColorMapDemo(ui->customPlot);// 19: setupFinancialDemo(ui->customPlot);// 20: setupPolarPlotDemo(ui->customPlot);

examples提供了21种图形。

相关示例图片可以参考上面文章的图片。

可以这样写来显示各个样例。

  MainWindow w[21];for(int i=0;i<=20;i++){w[i].setupDemo(i);w[i].show();}
 setWindowTitle("QCustomPlot: "+QString::number(demoIndex)+" "+demoName);

如果工作中有需要的话,可以学习这些样例,加以改造。

太经典了。

这里学习一下demo 2。

       QCustomPlot *customPlot=ui->customPlot;customPlot->legend->setVisible(true);customPlot->legend->setFont(QFont("Helvetica",9));

       customPlot->addGraph();customPlot->graph(0)->setName("Confidence Band 68%");customPlot->graph(0)->setBrush(QBrush(QColor(255,50,30,20)));

       customPlot->graph(0)->setName("hello everyone");customPlot->graph(0)->setBrush(QBrush(QColor(255,0,255)));

       customPlot->addGraph();customPlot->graph(0)->setName("hello everyone");customPlot->graph(0)->setBrush(QBrush(QColor(255,0,255)));customPlot->addGraph();customPlot->graph(1)->setName("hello everyone111");customPlot->graph(1)->setBrush(QBrush(QColor(0,0,255)));

customPlot->xAxis->setTickLabelRotation(30);

       customPlot->xAxis->setTickLabelRotation(60);

感觉这个api网站应该比较使用

Data Structures

为刻度标签中的数字设置数字格式。

这个formatCode是QString::number()和QLocale::toString()使用的格式代码的扩展版本。

有关这方面的参考,请参阅QString类详细描述中的“参数格式”部分。

formatCode是一个由一个、两个或三个字符组成的字符串。 

第一个字符与Qt使用的正常格式代码相同。

e/E:科学格式

f:固定格式

g/G:科学格式或固定格式

对于e、E和f格式,setNumberPrecision设置的精度表示小数点后的位数。

对于g和G格式,精度表示有效数字的最大数目,后面的零被省略。

对于QCustomPlot来说,第二个和第三个字符是可选的。
如果第一个字符是“e”或“g”,则数字可能以科学格式显示,

例如:“5.55 e9”,在plot中这有点丑。

因此,当formatCode的第二个字符被设置为'b'(表示“美丽”)时,这些指数将以更自然的方式格式化,即"5.5[乘号]10[上标]9"。

默认情况下,乘法号是居中点。

如果应该显示一个叉(在美国通常是这样),则可以将formatCode的第三个字符设置为'c'。

乘法号:UTF-8字符中:215 (0xD7)表示叉,183 (0xB7)表示点。

formatCode的示例:

g:正常格式。如果数字小,使用固定格式,如果数字大,使用科学格式。
gb :如果数字小,使用固定格式,如果数字大,使用科学格式,用漂亮的十进制小数和一个点作为乘法符号。
ebc :所有的数字都是科学格式,有漂亮的十进制和一个叉作为乘法号。
fb: 非法格式代码,因为固定格式不支持(或不需要)漂亮的十进制小数。格式代码将被简化为'f'。
hello :非法格式代码,因为第一个字符不是'e', 'e', 'f', 'g'或'g'。当前的格式代码将不会被更改。

       customPlot->xAxis->setNumberFormat("ebc");

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/705951.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

石碑之谜:滚动机关

描述 在蒙德和璃月的边界地带&#xff0c;有一个被遗忘的神庙&#xff0c;里面有一个奇怪的机关&#xff1a;滚动石碑。小熊必须操作这个112的长方体石碑&#xff0c;使其通过不同的地面环境&#xff0c;最终放置到神秘的符号“O”上&#xff0c;以解开通往宝藏的大门。 石碑…

【智能算法】清道夫优化算法(CFO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年&#xff0c;W Zhang受到清道夫自然行为启发&#xff0c;提出了清道夫优化算法&#xff08;Cleaner Fish Optimization Algorithm, CFO&#xff09;。 2.算法原理 2.1算法思想 CF…

【oracle】图片转为字节、base64编码等形式批量插入oracle数据库并查询

1.熟悉、梳理、总结下Oracle相关知识体系 2.欢迎批评指正&#xff0c;跪谢一键三连&#xff01; 资源下载&#xff1a; oci.dll、oraocci11.dll、oraociei11.dll3个资源文件资源下载&#xff1a; Instant Client Setup.exe资源下载&#xff1a; oci.dll、oraocci11.dll、oraoc…

使用Docker进行Jmeter分布式搭建

大家好&#xff0c;随着技术的不断发展&#xff0c;对性能测试的要求也日益提高。在这样的背景下&#xff0c;如何利用 Docker 来巧妙地搭建 Jmeter 分布式成为了关键所在。现在&#xff0c;就让我们开启这场探索之旅&#xff0c;揭开其神秘的面纱。前段时间给大家分享了关于 L…

SQL慢查询学习篇

https://www.cnblogs.com/isyues/p/17733015.html 1. 对扫到的SQL慢查询语句执行 explain explain select task_id, channel, count(task_id) as count from tablename where send_time > "2024-05-10 16:13:59" and send_time < "2024-05-14 16:13:59…

LeetCode 235. 二叉搜索树的最近公共祖先

LeetCode 235. 二叉搜索树的最近公共祖先 1、题目 题目链接&#xff1a;235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表…

【C语言】指针(二)

目录 一、传值调用和传址调用 二、数组名的理解 三、通过指针访问数组 四、一维数组传参的本质 五、指针数组 六、指针数组模拟实现二维数组 一、传值调用和传址调用 指针可以用在哪里呢&#xff1f;我们看下面一段代码&#xff1a; #include <stdio.h>void Swap(i…

ue引擎游戏开发笔记(41)——行为树的建立(2)--丰富ai行为:巡逻后返回原处

1.需求分析&#xff1a; 就敌人ai而言&#xff0c;追踪到敌人有可能丢失目标&#xff0c;丢失目标后应该能返回原来位置&#xff0c;实现这一功能。 2.操作实现&#xff1a; 1.思路&#xff1a;利用clear value函数&#xff0c;禁用掉当前的追踪功能&#xff0c;执行之后的返…

JUnit5参数化用例(三)

JUnit5枚举参数的参数化&#xff1a; 使用枚举类作为测试数据枚举参数参数化注解EnumSource必须与ParameterizedTest结合使用 枚举参数化注解 -简单使用&#xff1a; 需要添加EnumSource注解测试方法传入枚举类作为参数 在执行前&#xff0c;我们需了解enum枚举的使用方式&…

分布式计算、并行计算、网格计算、边缘计算

分布式计算 分布式计算是一种计算方法&#xff0c;它将一个大型的计算任务分解成多个子任务&#xff0c;并将这些子任务分布在网络上的多台计算机&#xff08;节点&#xff09;上同时执行。这些节点通过通信网络协同工作&#xff0c;共同完成任务。每个节点可以独立处理自己的…

3D Tiles资源大全

本文汇总整理3D Tiles相关的各种资源&#xff0c;包括查看器、生成器、示例数据集、教程、演示等。 1、3D Tiles特色演示 注意&#xff1a;这些演示是基于 CesiumJS 1.87.1 Release 发布的&#xff0c;其中包括对 3D Tiles Next 扩展的实验性支持。这些演示中显示的大多数功能现…

Java入门基础学习笔记26——break,continue

跳转关键字&#xff1a; break&#xff1a; 跳出并结束当前所在循环的执行。 continue&#xff1a; 用于跳出当前循环中的当次执行&#xff0c;直接进入循环中的下一次执行。 package cn.ensource.loop;public class BreakContinueDemo8 {public static void main(String[] a…