找回密码
 立即注册
收起左侧

QCustomPlot之开始(一)

1
回复
4347
查看
[复制链接]
累计签到:10 天
连续签到:1 天
来源: 原创 2020-3-16 20:43:30 显示全部楼层 |阅读模式
本帖最后由 maxlogo 于 2020-3-21 20:58 编辑

一、前言

QCustomPlot是Qt的一个小型第三方图表库,支持静态/动态曲线、柱状图、蜡烛图、频谱图等。使用方便,仅需在项目中加入头文件qcustomplot.h和qcustomplot.cpp源文件即可,或者把它当做一个库来添加到项目当中,需要在pro文件加入 DEFINES += QCUSTOMPLOT_COMPILE_LIBRARY

二、简单介绍QCustomPlot的几个重要类

  • QCustomPlot 图表类:用于图表的显示和交互
  • QCPLayer 图层:管理图层元素(QCPLayerable),所有可显示的对象都是继承自图层元素
  • QCPAbstractPlottable 绘图元素:包含 曲线图(QCPGraph)、曲线图(QCPCurve)、柱状图(QCPBars)、QCPStatiBox(盒子图)、QCPColorMap(色谱图)、QCPFinancial(金融图)
  • QCPAxisRect 坐标轴矩形:一个坐标轴矩形默认包含上下左右四个坐标轴,但是可以添加多个坐标轴

三、简单介绍QCustomPlot类

QCustomPlot类管理着所有的图层,它默认自带了六个图层,分别是:

  1. 背景层background
  2. 网格层grid
  3. 绘图层main
  4. 坐标轴层axes
  5. 图例层legend
  6. overlay层overlay

依据层的顺序的不同,绘制的顺序也不同,越在底下的层越早绘制,当前层默认为绘图层main

而我们的绘图区域则在QCPAxisRect中,QCustomPlot类默认包含一个QCPAxisRect,我们可以在下图中可以看到一个QCPAxisRect一般来说会有上轴xAxis2、下轴xAxis、左轴yAxis和右轴yAxis2四个轴

四、简单使用

我们以官方的一个简单示例来结束这篇

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("第一个示例");   // 设置曲线图的名字
    customPlot->xAxis->setLabel("x");             // 设置x轴的标签
    customPlot->yAxis->setLabel("y");
    customPlot->xAxis->setRange(-1, 1);           // 设置x轴的范围为(-1,1)
    customPlot->yAxis->setRange(0, 1);
    customPlot->legend->setVisible(true);         // 显示图例
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

累计签到:1568 天
连续签到:1 天
2020-3-16 21:33:16 显示全部楼层
图片上传不了吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了