QCustomplot基本使用(一)

简介: QCustomplot基本使用(一)

简述

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);

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

目录
相关文章
|
4月前
【qt】 QGridLayout布局管理器怎么用?
【qt】 QGridLayout布局管理器怎么用?
174 0
|
4月前
|
C#
WPF中动画教程(DoubleAnimation的基本使用)
WPF中动画教程(DoubleAnimation的基本使用)
85 0
|
缓存 数据可视化 Unix
QCustomPlot开发笔记(一):QCustomPlot简介、下载以及基础绘图
QCustomPlot开发笔记(一):QCustomPlot简介、下载以及基础绘图
QCustomPlot开发笔记(一):QCustomPlot简介、下载以及基础绘图
|
测试技术 定位技术 C++
QCustomPlot开发笔记(二):QCustomPlot用户交互、元素项以及特殊用法
QCustomPlot开发笔记(二):QCustomPlot用户交互、元素项以及特殊用法
QCustomPlot开发笔记(二):QCustomPlot用户交互、元素项以及特殊用法
|
数据采集 计算机视觉 异构计算
Qt开发笔记之QCustomPlot:QCustomPlot介绍、编译与使用
Qt开发笔记之QCustomPlot:QCustomPlot介绍、编译与使用
|
计算机视觉 容器
Qt开发笔记之Qwt(二):Qwt仪表盘的基本使用
Qt开发笔记之Qwt(二):Qwt仪表盘的基本使用
Qt开发笔记之Qwt(二):Qwt仪表盘的基本使用
|
开发工具 C语言 索引
Qt编写自定义控件25-自定义QCustomPlot
一、前言 上次在写大屏数据可视化电子看板系统时候,提到过改造QCustomPlot来实现柱状分组图、横向柱状图、横向分组图、鼠标悬停提示等。这次单独列出来描述,有很多人疑问为啥不用QChart,或者echart等形式,其实这两种方式我都尝试过,比如Qt5.7以后新增的QChart模块,曲线这块,支持数据量很小,而且用法极其不适应,非常别扭,尤其是10W以上数据量的支持,简直是渣渣,优点也是有很多的,比如动画效果,我看过他的完整源码,动画这块处理的非常好,连坐标轴都可以有动画效果,而且支持很多种效果,而且内置了很多套theme皮肤,省去了很多渣渣审美的程序员自己来配色,这个倒是挺方便的。
1279 0
|
开发工具 C语言 索引
Qt编写自定义控件36-图片浏览器
一、前言 本控件主要用来作为一个简单的图片浏览器使用,可以上下翻页显示图片,图片还可以开启过度效果比如透明度渐变,应用场景有查看报警图片运行图片等。此控件非本人原创,来源于网络,我只是修正了好多处BUG,并完善了各种操作方式。
1160 0
|
开发工具 Android开发 C语言
Qt编写自定义控件18-魔法小鱼
一、前言 上次发了个纯painter绘制的老鼠,那个就是qt目录下的demo,改的,只是比demo中的老鼠稍微胖一点,估计人到中年都发福吧。这次来一个魔法小鱼,这条鱼可以变换颜色,尾巴还会摇动,可以设定旋转的角度以及尾巴摆动的幅度等,原理是参考网上一个安卓大神写的(绘制原理 https://www.jianshu.com/p/3dd3d1524851)。
926 0
|
C#
WPF中StringFormat的用法
原文:WPF中StringFormat的用法 WPF中StringFormat的用法可以参照C#中string.Format的用法 1、 C#中用法: 格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)示例: string.
4196 0