使用QCustomPlot绘制静态曲线。并对常用函数的功能进行说明。

大部分参照别人博客,以在代码工程中附上了链接。

我的学习例程仓库,GitHub:QCustomPlot 学习例程下载

绘图坐标轴布局

坐标轴标签、刻度的分布,如下图示:

基本常用函数

(1)设置坐标轴标签名称 - setLabel

// 给widget绘图控件,设置个别名,方便书写
QCustomPlot *customPlot = ui->widget;// 设置x,y坐标轴标签名称
customPlot->xAxis->setLabel("x");
customPlot->yAxis->setLabel("y");

(2)设置坐标轴标签颜色 - setLabelColor

// 设置x,y坐标轴标签颜色
customPlot->xAxis->setLabelColor(QColor(0, 160, 230));
customPlot->yAxis->setLabelColor(QColor(0, 160, 230));

(3)设置坐标轴标签字体 - setLabelFont

// 设置x坐标轴标签字体
QFont xFont = customPlot->xAxis->labelFont();
xFont.setPixelSize(20);// 设置像素大小
xFont.setBold(true);// 粗体
xFont.setItalic(true);// 斜体
customPlot->xAxis->setLabelFont(xFont);

(4)设置坐标轴范围 - setRange

// 设置x,y坐标轴显示范围,不设置时默认范围为 0~5
customPlot->xAxis->setRange(-10, 10);
customPlot->yAxis->setRange(-100, 100);

(5)设置坐标轴 主刻度线颜色 - setTickPen

// 设置x,y坐标轴主刻度线颜色
customPlot->xAxis->setTickPen(QPen(Qt::yellow));
customPlot->yAxis->setTickPen(QPen(Qt::yellow));customPlot->xAxis->setTicks(false);//x轴不显示主刻度
customPlot->yAxis->setTicks(true);//y轴显示主刻度

(6)设置坐标轴 子刻度线颜色 - setSubTickPen

// 设置x,y坐标轴 子刻度线颜色
customPlot->xAxis->setSubTickPen(QColor(255, 165, 0));
customPlot->yAxis->setSubTickPen(QColor(255, 165, 0));

(7)设置坐标轴刻度标签(数字)颜色 - setTickLabelColor

// 设置x,y轴刻度数字颜色
customPlot->xAxis->setTickLabelColor(Qt::white);
customPlot->yAxis->setTickLabelColor(Qt::white);

(8)设置坐标轴基线颜色 - setBasePen

// 设置x,y坐标轴基线颜色
customPlot->xAxis->setBasePen(QPen(Qt::red));
customPlot->yAxis->setBasePen(QPen(Qt::red));

(9)设置背景色 - setBackground

// 设置背景色
customPlot->setBackground(QColor(50, 50, 50));

(10)导出图片 - savePng

// 导出图片
customPlot->savePng("customPlot.png", 480, 320);

导出的图片在 build-xxx-Debug/Release 运行目录下,并非在工程目录下

(11)添加曲线、曲线的坐标点数据

// 添加一条绘图曲线
QCPGraph *pGraph2 = customPlot->addGraph();/// 这行代码等同于 customPlot->addGraph(); QCPGraph *pGraph2 = customPlot->graph(1);
// 设置曲线颜色
pGraph2->setPen(QPen(QColor(0, 0, 255)));
// 曲线的坐标数据,计算x和y的坐标
QVector<double> x1(201), y1(201);
for (int i = 0; i < 201; ++i)
{x1[i] = -10 + 0.1f *i;y1[i] = cos(x1[i])*50;  // y = 50cosx
}
// 设置曲线的坐标数据
pGraph2->setData(x1, y1);

(12)设置图中单个数据点的连接方式。(有不连接、实现连接、折现、y轴柱状图) - setLineStyle

// 设置图中单个数据点的连接方式
// 帮助手册搜LineStyle可查到相关内容
// lsNone,lsLine(默认的,连线),lsStepLeft,lsStepRight,lsStepCenter,lsImpulse
customPlot->graph(0)->setLineStyle(QCPGraph::lsImpulse);

(13)设置单个数据点的外观(有无散点、散点形状) - setScatterStyle

// 设置每个数据散点为空心圆,大小为5
customPlot->graph()->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCircle, 5));

(14)显示图标的图例

// 显示图标的图例
customPlot->legend->setVisible(true);

(15)图表大小自适应曲线数据

customPlot->graph()->rescaleAxes(true);//坐标轴自适应

更多 QCustomPlot控件的使用操作,会在本专栏的后续篇章介绍,一起学习进步。

工程已同步至GitHub,欢迎下载学习。使用时记得遵循GPLv3哦。

我的学习例程仓库,GitHub:QCustomPlot 学习例程下载

【QCustomPlot】1.2 - QCustomPlot绘制静态曲线、常用函数的功能说明相关推荐

  1. 数据分析之numpy基础/matplotlib绘图/numpy常用函数/杂项功能

    文章目录 数据分析 numpy概述 numpy`历史` numpy的核心:多维数组 numpy基础 ndarray数组 内存中的ndarray对象 ndarray数组对象的特点 ndarray数组对象 ...

  2. VBS常用函数及功能

    函数名 语法 功能 Abs Abs(number) 返回一个数的绝对值 Sqr Sqr(number) 返回一个数的平方根 Sin Sin(number) 返回角度的正玄值 Cos Cos(numbe ...

  3. 计算机excel函数应用实例,几个常用函数的功能与应用范例

    1. AND函数 功能: 返回逻辑值:如果所有参数值均为逻辑"真(TRUE)",则返回逻辑"真(TRUE)",反之返回逻辑"假(FALSE)" ...

  4. html5添加随机率,HTML5 canvas  绘制随机曲线 并实现放大功能

    正在开发一个无线监控系统,要显示频率波形图,所以最近一段时间再研究HTML5 canvas 标签,本例实现了根基传经来的数据绘制曲线,并对整个图实行局部放大功能. js代码(canvas_06.js) ...

  5. php绘制历史曲线,thinkphp浏览历史功能实现方法

    这篇文章主要介绍了thinkphp浏览历史功能实现方法,可实现浏览器的浏览历史功能,是非常实用的技巧,需要的朋友可以参考下 本文实例讲述了thinkphp浏览历史功能实现方法,分享给大家供大家参考.具 ...

  6. [转载] MFC绘制动态曲线,用双缓冲绘图技术防闪烁

    转载的原文地址 先上效果图 随着时间的推移,曲线向右平移,同时X轴的时间坐标跟着更新. 一.如何绘制动态曲线 所谓动画,都是一帧一帧的图像连续呈现在用户面前形成的.所以如果你掌握了如何绘制静态曲线,那 ...

  7. MFC绘制动态曲线,用双缓冲绘图技术防闪烁

    转载自:ZHY_ongu的博客:MFC绘制动态曲线,用双缓冲绘图技术防闪烁 先上效果图    随着时间的推移,曲线向右平移,同时X轴的时间坐标跟着更新. 一.如何绘制动态曲线. 所谓动画,都是一帧一帧 ...

  8. python实时绘制动态曲线_pyqt中使用matplotlib绘制动态曲线

    一.项目背景: 看了matplotlib for python developers这本书,基本掌握了在pyqt中显示曲线的做法,于是自己写一个. 二.需求描述: 1)X轴显示时间点,显示长度为1分钟 ...

  9. 【less-5】基于SQLI的SQL盲注常用函数

    实验声明:本实验教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险! 实验目的 实验环境 实验原理 实验步骤 第一步 登录SQLI-Labs平台 第二步 登录Kali平台,启动Firef ...

最新文章

  1. java rest tomcat_java – REST服务返回HTTP 204(Tomcat / Linux)
  2. Spring-data-redis:特性与实例--转载
  3. kepler架构GPU新特性--HyperQ
  4. Selector 概念
  5. 微信小程序 高德地图知道两点求道路_微信小程序——计算2点之间的距离
  6. shiro学习(14):springMVC结合shiro完成认证
  7. Thrift CentOS安装和使用
  8. 【英语学习】【WOTD】countermand 释义/词源/示例
  9. Atlas读写分离Mysql集群的搭建
  10. 帆软报表跨域之插件开发中Controller中定义的方法实现CROS的GET跨域,且请求头带自定义属性
  11. 阿里云祝顺民:因云而生的云原生网络
  12. srs推flv流_SRS流媒体服务器之HLS源码分析(3)
  13. 《穿越计算机的迷雾》读书笔记六
  14. 显示upnp服务器 sonos,蒲公英的上层设备如何开启UPnP及其优点
  15. iphonex 序列号_iPhoneX序列号在哪?苹果iPhoneX序列号怎么看?
  16. 运维工程师主要做什么_网络工程师和网络运维工程师到底有什么不同?
  17. 【推免】笔试+机试+面试 准备
  18. Linux - 如何查看Ubuntu系统的版本信息
  19. 点击input文本框,文字消失 JS
  20. 队列Java舞会_stl之队列(舞会) - osc_706v6usl的个人空间 - OSCHINA - 中文开源技术交流社区...

热门文章

  1. 对于最小割的进一步理解
  2. 从RDS中获取binlog
  3. UBUNTU安装 SSH 服务
  4. rz/sz:工作原理
  5. Linux-1:安装忘记密码CRT连接centos 6.5
  6. 事务的隔离级别与锁的申请和释放
  7. 微信页面设计 小总结
  8. ibatis返回结果映射到HashMap时,列名无效的问题
  9. 【CSWS2014 Main Conference】Some Posters
  10. jupyter notebook OSError: [WinError 10049] 在其上下文中,该请求的地址无效。