【QCustomPlot实战系列】QCPGraph折线图的渐变

包含折线图渐变效果以及QCPAxisTickerDateTime的使用
QCPGraph折线图的渐变

static QBrush GenerateLinearBrush(Qt::Orientation orientation)
{qreal x = 1;qreal y = 0;if (orientation == Qt::Vertical) {x=0;y=1.5;}QLinearGradient gradient(0, y, x, 0);gradient.setCoordinateMode(QLinearGradient::ObjectMode);gradient.setColorAt(0, QColor(255, 255, 180));gradient.setColorAt(1, QColor(190, 68, 76));return { gradient };
}static QCPGraph* GenerateGraph(QCustomPlot *parentPlot, Qt::Orientation orientation)
{QVector<double> x;QVector<double> y = {116, 129, 135, 86, 73, 85, 73, 68, 92, 130, 245, 139, 115, 111, 309,206, 137, 128, 85, 94, 71, 106, 84, 93, 85, 73, 83, 125, 107, 82,44, 72, 106, 107, 66, 91, 92, 113, 107, 131, 111, 64, 69, 88, 77, 83,111, 57, 55, 60};x.resize(y.count());auto startDateTime = QDateTime(QDate(2000, 6, 5)).toSecsSinceEpoch();for (int i = 0; i < y.count(); ++i) {x[i] = double(startDateTime + i * 3600 * 24);}auto ticker = QSharedPointer<QCPAxisTickerDateTime>::create();ticker->setDateTimeFormat("yyyy-MM-dd");ticker->setTickOrigin(x.first());ticker->setTickCount(10);auto axisRect = new QCPAxisRect(parentPlot);axisRect->axis(QCPAxis::atBottom)->setTicker(ticker);auto graph = new QCPGraph(axisRect->axis(QCPAxis::atBottom), axisRect->axis(QCPAxis::atLeft));graph->setData(x, y);graph->setPen(QPen(GenerateLinearBrush(orientation), 2));axisRect->axis(QCPAxis::atBottom)->rescale();axisRect->axis(QCPAxis::atLeft)->setRange(0, 350);auto text = new QCPTextElement(parentPlot);auto font = text->font();font.setPointSize(18);text->setFont(font);text->setTextColor(QColor(70, 70, 70));if (orientation == Qt::Vertical) {text->setText("Gradient along the y axis");} else {text->setText("Gradient along the x axis");}parentPlot->plotLayout()->addElement(text);parentPlot->plotLayout()->addElement(axisRect);QAbstractPlotItem::applyDefaultStyle(axisRect);return graph;
}void LineGradient::initCustomPlot(QCustomPlot *parentPlot)
{parentPlot->plotLayout()->clear();parentPlot->plotLayout()->setFillOrder(QCPLayoutGrid::foRowsFirst);auto margin = new QCPLayoutElement(parentPlot);margin->setMinimumSize(0, 50);margin->setMaximumSize(QWIDGETSIZE_MAX, 50);GenerateGraph(parentPlot, Qt::Vertical);parentPlot->plotLayout()->addElement(margin);GenerateGraph(parentPlot, Qt::Horizontal);
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件需求管理规程(DOC原件)

软件需求管理规程是确保软件开发过程中需求清晰、一致、可追踪的关键环节&#xff1a; 明确需求&#xff1a;项目初期&#xff0c;与利益相关者明确项目目标和需求&#xff0c;确保需求完整、无歧义。需求评审&#xff1a;组织专家团队对需求进行评审&#xff0c;识别潜在风险和…

huggingface加速下载模型

文章目录 所需环境huggingface-cli 用法登录token 获取 huggingface 镜像huggingface 缓存hf-transfer 拉满下载带宽如果开了的话&#xff0c;记得关掉科学上网&#xff01;&#xff01;&#xff01; 所需环境 python huggingface-cli 用法 huggingface-cli的更多用法点击这…

基于SpringBoot+IDEA+Mysql开发的在线课程教育平台

基于SpringBootIDEAMysql开发的在线课程教育平台 项目介绍&#x1f481;&#x1f3fb; 项目背景描述 随着信息技术的迅猛发展和互联网的普及&#xff0c;传统教育模式正面临着前所未有的挑战和机遇。为满足广大用户对于灵活、便捷、高效学习方式的需求&#xff0c;我们决定开发…

Redis 内存碎片是什么?如何清理?

Redis 内存碎片相关的问题在得物、美团、阿里、字节、携程等公司的后端面试中都曾出现过&#xff0c;还是建议认真准备一下。即使不是准备面试&#xff0c;日常开发也是能够用到的&#xff01; 什么是内存碎片? 你可以将内存碎片简单地理解为那些不可用的空闲内存。 举个例子&…

PMP认证有什么好处?

一般这些人适合去考PMP认证&#xff1a; 想要通过资质进行晋升的人群&#xff1a; 比如说在项目相关的助理岗位&#xff0c;企业中的项目人才需求依旧是很大的&#xff0c;项目助理如果想要达到项目经理或者项目主管的提升&#xff0c;就需要让公司对自己的项目管理能力认同才…

基于Java的旅游景区网站系统(springboot+vue)

作者介绍&#xff1a;计算机专业研究生&#xff0c;现企业打工人&#xff0c;从事Java全栈开发 主要内容&#xff1a;技术学习笔记、Java实战项目、项目问题解决记录、AI、简历模板、简历指导、技术交流、论文交流&#xff08;SCI论文两篇&#xff09; 上点关注下点赞 生活越过…

泰迪智能科技携手广州番禺职业技术学院共建上进双创工作室

为充分发挥校企双方的优势&#xff0c;促进产教融合&#xff0c;发挥职业教育为社会、行业、企业服务的作用&#xff0c;为企业培养更多高素质、高技能的应用型人才的同时也为学生实习、就业提供更大空间。6月26日&#xff0c;“泰迪广州番禺职业技术学院上进双创工作室签约授牌…

【吊打面试官系列-MyBatis面试题】MyBatis 框架的缺点?

大家好&#xff0c;我是锋哥。今天分享关于 【MyBatis 框架的缺点&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; MyBatis 框架的缺点&#xff1f; 1、SQL 语句的编写工作量较大&#xff0c;尤其当字段多、关联表多时&#xff0c;对开发人员编写 SQL 语句的功底…

[Go Web] Kratos 验证码业务

文章目录 1.环境准备2.验证码服务2.1 kratos 初始化验证码服务项目2.2 使用 Protobuf 定义验证码生成接口2.3 业务逻辑代码实现 1.环境准备 protoc和protoc-gen-go插件安装和kratos工具安装 protoc下载 下载二进制文件&#xff1a;https://github.com/protocolbuffers/protobu…

【Python机器学习】自动化特征选择——基于模型的特征选择

基于模型的特征选择使用一个监督机器学习模型来判断每个特征的重要性&#xff0c;并且仅保留最重要的特征。用于特征学习的监督模型不需要与用于最终建模的模型相同。特征选择模型需要为每个特征提供某种重要性度量&#xff0c;以便用这个度量对特征进行排序。决策树和基于决策…

基于YOLOv10的车辆统计跟踪与车速计算应用

文章目录 1、前言2、安装运行环境3、下载v10s模型4、代码实现5、代码详读5.1、导入必要的库5.2、识别车辆5.3、读取视频文件5.4、创建视频写入器5.5、车速计算5.6、统计车辆5.7、应用跟踪5.8、视频处理 6、目标检测系列文章 1、前言 在智能交通系统&#xff08;ITS&#xff09…

基于单片机和LabVIEW 的远程矿井水位监控系统设计

摘要 &#xff1a; 针 对 现 有 矿 井 水 位 监 控 系 统 存 在 结 构 复 杂 和 不 能 远 程 监 控 的 问 题 &#xff0c; 设计了基于单片机和&#xff2c;&#xff41;&#xff42;&#xff36;&#xff29;&#xff25;&#xff37; 的远程矿井水位监控系统 &#xff0c; 详…

密码管理器大比拼:哪款更适合你?(KeePass、Bitwarden、LastPass、1Password和Dashlane对比)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 密码管理器 📒🎯 对比🎯 付费情况🎯 安全性🎈 获取方式 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 随着互联网的发展和网络安全问题的日益突出,密码管理器已经成为保障个人和企业信息安全的重要工具。本文将详细对比市面…

Dataease安装,配置Jenkins自动部署

Dataease安装&#xff0c;配置Jenkins自动部署 一.安装Dataease 安装前准备&#xff1a;1.Ubuntu20.04 LTS国内源安装指定版本Docker 2.docker-compose安装 下载离线安装的安装包&#xff0c;下载地址&#xff1a;https://community.fit2cloud.com/#/download/dataease/v1-…

人工智能AI风口已开:如何赋予UI设计与视频剪辑新生命

随着科技的浪潮不断向前推进&#xff0c;人工智能&#xff08;AI&#xff09;正以惊人的速度重塑着我们的世界&#xff0c;特别是在创意产业的核心领域——UI设计与视频剪辑中&#xff0c;AI正逐步成为驱动行业创新与变革的关键力量。在这个AI技术全面开花的新时代&#xff0c;…

C++学习笔记---串口通信

串口基础知识 DB9针的RS-232串口&#xff0c;分别是公头、母头&#xff0c;这两种串口可以连接在一起。DB9针的串口信号脚编号及信号脚的具体含义如下 串口通信可以使用3根线完成&#xff0c;对应信号脚分别是&#xff1a;2接收、3发送、5地线。对此&#xff0c;有个简单的记法…

强化学习:值函数近似【Deep Q-Network,DQN,Deep Q-learning】

强化学习笔记 主要基于b站西湖大学赵世钰老师的【强化学习的数学原理】课程&#xff0c;个人觉得赵老师的课件深入浅出&#xff0c;很适合入门. 第一章 强化学习基本概念 第二章 贝尔曼方程 第三章 贝尔曼最优方程 第四章 值迭代和策略迭代 第五章 强化学习实例分析:GridWorld…

(番外篇)指针的一些相关习题讲解(速进,干货满满)(1)

前言&#xff1a; 我已经好久没写过博客了&#xff0c;这几天确实有点偷懒了&#xff0c;上次博客我们已经讲完了指针的部分内容&#xff0c;但我觉着没有习题是不够的&#xff0c;于是我出了这一篇番外篇&#xff0c;来让各位读者朋友们进行指针强化&#xff0c;这些题目都是小…

Python27 神经网络中的重要概念和可视化实现

1. 神经网络背后的直观知识 神经网络的工作方式非常相似&#xff1a;它接受多个输入&#xff0c;经过多个隐藏层中的多个神经元进行处理&#xff0c;并通过输出层返回结果&#xff0c;这个过程在技术上称为“前向传播”。 接下来&#xff0c;将神经网络的输出与实际输出进行比…

GIT-LFS使用

0.前言 目前git仓库有很多很大的文件需要管理&#xff0c;但是直接上传&#xff0c;每次clone的文件太大&#xff0c;所有准备使用git-lfs解决。 1、下载和安装 Git LFS 1.1、直接下载二进制包&#xff1a; Releases git-lfs/git-lfs GitHub 安装 Git LFS sudo rpm -ivh…