【C++】Qt:QCustomPlot图表绘制库配置与示例

😏★,°:.☆( ̄▽ ̄)/$:.°★ 😏
这篇文章主要介绍QCustomPlot图表绘制库配置与示例。
学其所用,用其所学。——梁启超
欢迎来到我的博客,一起学习,共同进步。
喜欢的朋友可以关注一下,下次更新不迷路🥞

文章目录

    • :smirk:1. QCustomPlot介绍
    • :blush:2. 环境安装与配置
    • :satisfied:3. 应用示例

😏1. QCustomPlot介绍

QCustomPlot是一个基于Qt框架的开源图表绘制库,用于绘制各种类型的二维图表和科学数据可视化。它提供了丰富的绘图功能和灵活的定制选项,使开发者能够轻松创建交互式和高度可定制的图表。

以下是一些QCustomPlot库的特点和功能:

1.多种图表类型:QCustomPlot支持绘制各种常见的二维图表类型,包括散点图、线图、柱状图、饼图、等值线图等。你可以根据数据的特点选择合适的图表类型。

2.数据可视化:该库提供了丰富的功能来可视化科学数据。你可以通过绘制数据点、曲线、颜色映射和等值线等方式,直观地展示数据的分布、趋势和关联性。

3.交互式操作:QCustomPlot支持交互式操作,允许用户通过鼠标与图表进行交互。你可以缩放、平移、选择数据点、显示工具提示等,以便用户对图表进行探索和分析。

4.定制选项:该库提供了丰富的定制选项,可以根据需要调整图表的外观和行为。你可以设置轴的刻度、标签和范围,选择图例的位置和样式,自定义绘图元素的样式和颜色等。

5.轻量级和易于集成:QCustomPlot是一个轻量级的库,易于集成到现有的Qt应用程序中。它只依赖于Qt库本身,没有其他外部依赖,使得它成为一个方便和灵活的选择。

😊2. 环境安装与配置

官网:https://www.qcustomplot.com/index.php/

QCustomPlot可直接从官网下载,在工程中引入.h .cpp就可以,此外,官网也提供了几个示例程序,可参考。

引用这个库,需要在pro文件加入:QT += printsupport

😆3. 应用示例

基本绘图示例:

// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "qcustomplot.h"

namespace Ui {
class MainWindow;
}

class QCustomPlot;

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

    void setupQuadraticDemo(QCustomPlot *customPlot);

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QCustomPlot* customPlot = new QCustomPlot;
    setCentralWidget(customPlot);

    setupQuadraticDemo(customPlot);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::setupQuadraticDemo(QCustomPlot *customPlot)
{
    QVector<double> x(101), y(101);
    for (int i = 0; i < 101; ++i) {
        x[i] = i / 50.0 - 1; // -1 到 1
        y[i] = x[i] * x[i];
    }

    customPlot->addGraph(); // 添加一个曲线图QGraph
    customPlot->graph(0)->setData(x, y); // 为曲线图添加数据
    customPlot->graph(0)->setName(QString::fromLocal8Bit("customplot_quadratic_demo")); // 设置曲线图的名字
    customPlot->xAxis->setLabel("x"); // 设置x和y轴的标签
    customPlot->yAxis->setLabel("y");
    customPlot->xAxis->setRange(-1, 1); // 设置x轴的范围为(-1,1)
    customPlot->yAxis->setRange(0, 1);
    customPlot->legend->setVisible(true); // 显示图例
}

在这里插入图片描述

请添加图片描述

以上。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

哈夫曼算法详细讲解(算法+源码)

博主介绍&#xff1a;✌全网粉丝喜爱、前后端领域优质创作者、本质互联网精神、坚持优质作品共享、掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战✌有需要可以联系作者我哦&#xff01; &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&…

开发实战角度:distinct实现原理及具体优化总结

1.背景 Distinct是一种常用的操作&#xff0c;在所有数据库的SQl语言中都是一个非常重要的操作&#xff0c;在Hive中&#xff0c;Distinct去重原理是通过MapReduce来实现的&#xff0c;Distinct操作可以应用于单个列&#xff0c;亦可以应用于多个列。基本原理是将输入的数据集…

基于SpringBoot的教务管理系统设计与实现(源码+调试)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SpringBoot的教务管…

StableDiffusion新版汉化

新旧版不同&#xff0c;这里以新版为例&#xff0c;用的是带链接&#xff0c;可以更新的方法。 步骤&#xff1a; 1.找到这个位置&#xff0c;依次点击&#xff0c;注意选项。 2.点击加载&#xff0c;等待刷新。 ctrlF搜索 zh_CN Localization 右边点击install&#xff0c…

[Linux 杂货铺] —— 权限(文件权限和目录配置)

目录 &#x1f308;前言 &#x1f4c1; 文件的属性 &#x1f4c1; 权限的概念 &#x1f4c2;拥有者和所属组&#xff08;角色&#xff09;&#xff1a; &#x1f4c2;用户&#xff08;具体的人&#xff09;&#xff1a; &#x1f4c1; 权限的管理 &#x1f4c2;1. chmod…

Object.defineProperty、Proxy、Reflect-个人总结

Object.defineProperty 前言 用于给一个对象添加或者修改一个属性&#xff0c;返回操作后的对象。 写法&#xff1a;Object.defineProperty(对象&#xff0c;属性&#xff0c;配置对象) 配置对象 通过对配置对象不同的配置&#xff0c;可以将属性分为数据属性和存取属性。 数据…

[Linux]HTTP状态响应码列举

1xx&#xff1a;信息响应类&#xff0c;表示接收到请求并且继续处理 2xx&#xff1a;处理成功响应类&#xff0c;表示动作被成功接收、理解和接受 3xx&#xff1a;重定向响应类&#xff0c;为了完成指定的动作&#xff0c;必须接受进一步处理 4xx&#xff1a;客户端错误&#x…

7.Feign远程调用

2.Feign远程调用 先来看我们以前利用RestTemplate发起远程调用的代码&#xff1a; 存在下面的问题&#xff1a; •代码可读性差&#xff0c;编程体验不统一 •参数复杂URL难以维护 Feign是一个声明式的http客户端&#xff0c;官方地址&#xff1a;https://github.com/OpenF…

RabbitMQ消息应答与发布

消息应答 RabbitMQ一旦向消费者发送了一个消息,便立即将该消息,标记为删除. 消费者完成一个任务可能需要一段时间,如果其中一个消费者处理一个很长的任务并仅仅执行了一半就突然挂掉了,在这种情况下,我们将丢失正在处理的消息,后续给消费者发送的消息也就无法接收到了. 为了…

【BIAI】Lecture 6 - Somatosensory systems

Lecture 6- Somatosensory systems 专业术语 somatosensory system 体感系统 Thermoreceptors 温度感受器 Photoreceptors 光感受器 Chemoreceptoprs 化学感受器 hairy skin 毛发皮肤 glabrous skin 光滑皮肤 sensory receptors 感觉受体 dermal 真皮的 epidermal 表皮的 axon…

外包干了2个多月,技术退步明显。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近3年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

创建高打开率邮件标题的技巧:吸引潜在客户的秘诀

邮件打开率是指什么&#xff1f; 邮件打开率是指打开邮件的人数占发送的收件人总人数的比例。 邮件的打开率是衡量营销效果如何的一个非常重要的指标&#xff0c;而邮件标题又是影响邮件打开率非常重要的因素之一。所以&#xff0c;我们要要重视邮件标题。那我们应该如何编辑…

《移动通信原理与应用》——QPSK调制解调仿真

目录 一、QPSK调制与解调流程图&#xff1a; 二、仿真运行结果&#xff1a; 三、MATLAB仿真代码&#xff1a; 一、QPSK调制与解调流程图&#xff1a; QPSK调制流程图&#xff1a; QPSK解调流程图&#xff1a; 二、仿真运行结果&#xff1a; 1、Figure1:为发送端比特流情…

深入了解WPF控件:常用属性与用法(七)

掌握WPF控件&#xff1a;熟练常用属性&#xff08;七&#xff09; Menu 用于为应用程序指定命令或选项的项列表。它允许用户通过选择不同的菜单项来执行不同的命令或操作。 每个 Menu 可以包含多个 MenuItem 控件。 每个 MenuItem 都可以调用命令或调用 Click 事件处理程序。…

竞赛保研 电影评论情感分析 - python 深度学习 情感分类

1 前言 &#x1f525;学长分享优质竞赛项目&#xff0c;今天要分享的是 &#x1f6a9; GRU的 电影评论情感分析 - python 深度学习 情感分类 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 这…

vue3-组件基础

什么是组件 组件允许我们将 UI 划分为独立的、可重用的部分&#xff0c;并且可以对每个部分进行处理。在实际应用中&#xff0c;组件常常被组织成层层嵌套的树状结构。 定义一个组件 我们一般会将 Vue 组件定义在一个单独的 .vue 文件中&#xff0c;这被叫做单文件组件 (简称…

【加速】Ubuntu 22.04 LTS Steam++ Watt Toolkit 加速 github

项目地址 SteamTools: &#x1f6e0;「Watt Toolkit」是一个开源跨平台的多功能 Steam 工具箱。 下载linux版本 wget https://gitee.com/rmbgame/SteamTools/releases/download/3.0.0-rc.3/Steam%20%20_v3.0.0-rc.3_linux_x64.tgz 解压到/opt/steam sudo mkdir /opt/steam…

【C语言】扫雷游戏完整代码实现

目录 1.game.h 2.game.c 3.progress.c 4.运行结果 1.game.h #define _CRT_SECURE_NO_WARNINGS#include <string.h> #include <stdio.h> #include <time.h> #include<stdlib.h>#define ROW 9 #define COL 9 #define ROWS 11 #define COLS 11 #defin…

ctfshow-反序列化(web271-web276)

目录 web271 web272-273 web274 web275 web276 为什么不用分析具体为什么能成功 ,后面会有几个专题 会对php框架进行更深入的了解 这里面会专门的研究 为什么能够实现RCE 前面作为初步的熟悉 首先知道一下他的框架 知道框架的风格 知道啥版本可以用什么来打 首先先不用太研…

CopyOnWriteArrayList源码

CopyOnWriteArrayList源码 介绍 CopyOnWriteArrayList底层采用数组对元素进行存储&#xff0c;采用写时复制技术:写的时候加锁&#xff0c;将原数组拷贝一份&#xff0c;对新数组进行操作&#xff0c;新数组长度为原数组长度1,写入完成后替换原数组&#xff0c;原数组使用vol…