QCustomplot基本使用(一)

2023-11-01

文章目录

简述

QCustomPlot是一个基于Qt C++的图形库,用于绘制和数据可视化 - 制作漂亮的2D图 - 曲线图、趋势图、坐标图、柱状图等,并为实时可视化应用程序提供高性能服务。它没有进一步的依赖关系,并有着良好的文档记录。
QCustomPlot可以导出为各种格式,比如:PDF文件和位图(如:PNG、JPG、BMP)。
可在自己的项目中直接使用两个源文件(qcustomplot.h与qcustomplot.cpp),或预先编译成库。

下载

QCustomPlot首页:http://www.qcustomplot.com/
进入QCustomPlot下载页,下载最新的完整包(包含:源码、文档、示例)!
将下载好的安装包进行解压缩,里面包含文档、示例、更改日志、GPL授权、以及最重要的两个文件qcustomplot.h与qcustomplot.cpp。

使用

首先创建一个正常的mainwindow主窗口带ui的qt的工程,然后将我们上面下载的头文件和源文件都放在这个工程中。
然后在.pro文件中添加一行QT += printsupport
在这里插入图片描述

再到ui界面添加一个widget,右键提升为QCustomPlot
在这里插入图片描述
构造函数中写如下代码。注释已经写的很详细了,此处不再赘述

	this->resize(700,700);//设置主窗口大小
    QCustomPlot *pCustomPlot = new QCustomPlot(this);//实例化一个对象
    pCustomPlot->resize(600, 600);//设置大小
 
    // 可变数组存放绘图的坐标的数据,分别存放x和y坐标的数据,101为数据长度
    QVector<double> x(101), y(101);
 
    // 添加数据,这里演示y = x^3,为了正负对称,x从-10到+10
    for (int i = 0; i < 101; ++i)//模拟数据
    {
        x[i] = i/5 - 10;        //一个间距 放五个点
        y[i] = qPow(x[i], 3);   // x的y次方;
    }
 
    // 向绘图区域QCustomPlot添加一条曲线   必须先有曲线才能添加数据 否则程序异常崩溃
    QCPGraph *pGraph = pCustomPlot->addGraph();
 
    // 添加数据
    pCustomPlot->graph(0)->setData(x, y);
 
    // 设置坐标轴名称
    pCustomPlot->xAxis->setLabel("x");
    pCustomPlot->yAxis->setLabel("y");
 
    // 设置背景色
    pCustomPlot->setBackground(QColor(50, 50, 50));
 
    // 设置画笔颜色
    pGraph->setPen(QPen(QColor(32, 178, 170)));
 
    // 设置x/y轴文本色、轴线色、字体等
    pCustomPlot->xAxis->setTickLabelColor(Qt::white);//设置水平的刻度下面的数字颜色
    pCustomPlot->xAxis->setLabelColor(QColor(0, 160, 230));//设置水平的坐标轴颜色
    pCustomPlot->xAxis->setBasePen(QPen(QColor(32, 178, 170)));//设置水平的刻度颜色(单位是1)
    pCustomPlot->xAxis->setTickPen(QPen(QColor(128, 0, 255)));//设置刻度画笔
    pCustomPlot->xAxis->setSubTickPen(QColor(255, 165, 0));//设置水平的刻度颜色(单位是0.2)
    QFont xFont = pCustomPlot->xAxis->labelFont();//获取水平的坐标轴名称的字体样式
    xFont.setPixelSize(20);//设置字体大小
    pCustomPlot->xAxis->setLabelFont(xFont);//设置水平的坐标轴名称的字体样式
 
    pCustomPlot->yAxis->setTickLabelColor(Qt::white);//同样的方式设置y轴
    pCustomPlot->yAxis->setLabelColor(QColor(0, 160, 230));
    pCustomPlot->yAxis->setBasePen(QPen(QColor(32, 178, 170)));
    pCustomPlot->yAxis->setTickPen(QPen(QColor(128, 0, 255)));
    pCustomPlot->yAxis->setSubTickPen(QColor(255, 165, 0));
    QFont yFont = pCustomPlot->yAxis->labelFont();
    yFont.setPixelSize(20);
    pCustomPlot->yAxis->setLabelFont(yFont);
 
    // 设置坐标轴显示范围,否则只能看到默认范围
    pCustomPlot->xAxis->setRange(-11, 11);
    pCustomPlot->yAxis->setRange(-1100, 1100);

一个简单的图形就出来了。其他功能将在后序展开。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QCustomplot基本使用(一) 的相关文章

  • 每个托管线程是否都有自己对应的本机线程?

    我想知道是否在 Net 中创建托管线程 通过调用Thread Start 导致在后台创建一个本机线程 那么托管线程是否有对应的本机线程呢 如果是 当托管线程等待或睡眠时 是否意味着相应的本机线程也在等待或睡眠 是的 NET 线程映射到所有当
  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • 为什么调用非 const 成员函数而不是 const 成员函数?

    为了我的目的 我尝试包装一些类似于 Qt 共享数据指针的东西 经过测试 我发现当应该调用 const 函数时 会选择它的非 const 版本 我正在使用 C 0x 选项进行编译 这是一个最小的代码 struct Data int x con
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • 当我使用 OpenSSL1.1.0g 根据固定的 p 和 g 值创建 Diffie Hellman 密钥协议密钥时,应该执行哪些检查?

    您好 我尝试通过这段代码使用修复 p 和 g 参数来制作 Diffie Hellman Keysanswer https stackoverflow com a 54538811 4706711 include

随机推荐

  • 鼠标点击获得opencv图像坐标和像素值

    目录 一 核心函数 二 在类中定义并且使用 1 将回调函数直接声明为友元函数 2 h 3 DW S OnMou cpp 4 main cpp 三 函数调用 1 OnMouse h 2 OnMouse cpp 一 核心函数 setMouseC
  • 如何在没有 USB 数据线的情况下使用 Android Studio 在手机中安装 Android

    背景 如何在没有 USB 数据线的情况下使用 Android Studio 在手机中安装 Android 应用程序 运行调式一个Android项目 写下必要的代码后 接下来的任务是在模拟器或手机上运行应用程序 测试应用程序是否正常 及deb
  • python numpy中对ndarry按照index(位置下标)增删改查

    在numpy中的ndarry是一个数组 因此index就是位置下标 注意下标是从0开始 增加 在插入时使用np insert 在末尾添加时使用np append 删除 需要使用np delete 修改 直接指定下标 查找 直接指定下标 示例
  • 【Shell】find文件查找

    语法格式 find 路径 选项 操作 选项参数对照表 常用选项 name 查找 etc目录下以conf结尾的文件ind etc nam iname 查找当前目录下文件名为aa的文件 不区分大小写 find iname aa user 查找文
  • [激光原理与应用-69]:激光焊接的10大常见缺陷及解决方法

    激光焊接是一种以高能量密度的激光束作为热源的高效精密焊接方法 如今 激光焊接已广泛应用于各个行业 如 电子零件 汽车制造 航空航天等工业制造领域 但是 在激光焊接的过程中 难免会出现一些缺陷或次品 只有充分了解这些缺陷并学习如何避免它们 才
  • 九轴传感器之测试篇

    关于九轴传感器的数据测试处理
  • CORS与CSRF

    本文首发于我的Github博客 本篇文章介绍了CORS和CSRF的概念 作者前几天在和带佬们聊天的时候把两个概念搞混了 所以才想要了解 简单来说 CORS Cross Origin Resource Sharing 跨域资源分享 是一种机制
  • (1)基础学习——图解pin、pad、port、IO、net 的区别

    本文内容有参考多位博主的博文 综合整理如下 仅做和人学习记录 如有专业性错误还请指正 谢谢 参考1 芯片资料中的pad和pin的区别 imxiangzi的博客 CSDN博客 pin和pad的区别 参考2
  • IntelliJ IDEA 运行卡顿解决方案

    IntelliJ IDEA 运行卡顿解决方案 1 开启IntelliJ IDEA缓慢 想要提升启动速度 则打开D JetBrains IntelliJ IDEA 2020 3 2 bin 依据实际安装路径 目录下对应文件idea64 exe
  • 对csv文件,又get了新的认知

    背景 在数据分析时 有时我们会碰到csv格式文件 需要先进行数据处理 转换成所需要的数据格式 然后才能进行分析 业务侧的同学可能对Excel文件比较熟悉 Excel可以把单个sheet直接保存为csv文件 也可以直接读取csv文件 变成Ex
  • Qt 进程间通信

    Qt进程间通信的方法 TCP IP Local Server Socket 共享内存 D Bus Unix库 QProcess 会话管理 TCP IP 使用套接字的方式 进行通信 之前介绍了 这里就不介绍了 Local Server Soc
  • 用Tensorflow Agents实现强化学习DQN

    在我之前的博客中强化学习笔记 4 深度Q学习 gzroy的博客 CSDN博客 实现了用Tensorflow keras搭建DQN模型 解决小车上山问题 在代码里面 需要自己实现经验回放 采样等过程 比较繁琐 Tensorflow里面有一个a
  • C/C++编程:模板特例

    为什么要引入 单一模板很难兼顾各种情况 为此 C 提供了一种特例机制 对于某个已有模板 可以为某个或者某组模板参数类型另外指定一种变体 以应对原模板无法处理的情况 或者提供更高效的实现方案 这就是模板特例 实例 vector
  • win7 & centos7 双系统安装方法

    1 准备 1 Centos7镜像 官方 https www centos org 阿里镜像64位 http mirrors aliyun com centos 32位 https mirrors aliyun com centos alta
  • 计算机专业考哪些证书含金量高?考到就能加薪吗

    计算机专业要不要考证 考证很重要吗 考哪个好 对于有些人而言 他们可能会有人认为认证就是一张纸 没有太大的用处 看到大家都在考 心里又会产生动摇 还有人会认为考证的价格太高 担心自己没有办法考上白白浪费自己的金钱和时间 或者还有的人在认证的
  • MarkDown中写E-R图、甘特图、饼图的方法

    目录 序 E R 图 E R图的构成 关系的类型 关系的存在性 关系的语法 Mermaid中E R图的简单例子 样例 实体与关系的表示 属性的表示 特殊约束关系的表示 甘特图 Mermaid中甘特图的简单例子 样例 甘特图的标题 子任务的表
  • 如何进阶优秀数据分析师行列?方法、技术与工具,缺一不可!

    更多精彩推荐 请关注我们 入行数据分析师 从来都不是一蹴而就的 好比钓鱼 不是简单地把诱饵放上鱼钩 然后扔到水中 就可以有鱼上钓 方法 技术与工具 缺一不可 什么是举一反三 什么是学以致用 什么是融会贯通 不是靠一味地执著和花时间就可以达到
  • ajax发送post请求报403

    ajax发送post请求报403 检查提交的参数是否和后端接收的参数是否一直
  • 2022最新阿里Java面经,转疯了

    写在前面 最近 很多小伙伴出去面试都被问到了Spring问题 关于Spring 细节点很多 面试官也非常喜欢问一些很细节的技术点 所以 在 Spring 专题中 我们尽量把Spring的每个技术细节说清楚 将透彻 概述 自定义组件要想使用S
  • QCustomplot基本使用(一)

    文章目录 简述 下载 使用 简述 QCustomPlot是一个基于Qt C 的图形库 用于绘制和数据可视化 制作漂亮的2D图 曲线图 趋势图 坐标图 柱状图等 并为实时可视化应用程序提供高性能服务 它没有进一步的依赖关系 并有着良好的文档记