【QCustomPlot实战系列】QCPGraph堆叠面积图

news2024/11/25 0:59:23

在【QCustomPlot实战系列】QCPGraph堆叠图的基础上,使用setChannelFillGraph函数即可
QCPGraph堆叠面积图

static QCPScatterStyle GetScatterStyle(const QColor& color)
{
    QPen pen(color, 2);
    return QCPScatterStyle(
            QCPScatterStyle::ssCircle,
            pen,
            Qt::white, 5);
}

static QCPGraph* AddGraph(
        QCustomPlot* parentPlot,
        const QVector<double>& keys,
        const QVector<double>& values,
        const QColor& color,
        const QString& name)
{
    auto graph = parentPlot->addGraph();
    graph->setData(keys, values);
    graph->setScatterStyle(GetScatterStyle(color));
    graph->setPen(QPen(QColor(color), 2));
    graph->setName(name);
    return graph;
}

void StackedAreaChart::initCustomPlot(QCustomPlot *parentPlot)
{
    QVector<double> x = {
            1, 2, 3, 4, 5, 6, 7,
    };
    QVector<double> y = {
            150, 230, 224, 218, 135, 147, 260
    };

    QVector<QString> labels = {
            "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"
    };
    auto ticker = QSharedPointer<QCPAxisTickerText>::create();
    ticker->setTicks(x, labels);

    QPen pen(QColor("#5c7bd9"), 2);
    QCPScatterStyle style(
            QCPScatterStyle::ssCircle,
            pen,
            Qt::white, 5);

    auto graph5 = AddGraph(parentPlot, x, {820, 932, 901, 934, 1290, 1330, 1320},
                           "#73c0de", "Search Engine");
    auto graph4 = AddGraph(parentPlot, x, {320, 332, 301, 334, 390, 330, 320},
                           "#ee6666", "Direct");
    auto graph3 = AddGraph(parentPlot, x, {150, 232, 201, 154, 190, 330, 410},
                           "#fac858", "Video Ads");
    auto graph2 = AddGraph(parentPlot, x, {220, 182, 191, 234, 290, 330, 310},
                           "#91cc75", "Union Ads");
    auto graph1 = AddGraph(parentPlot, x, {120, 132, 101, 134, 90, 230, 210},
                           "#5c7bd9", "Email");

    graph5->moveAbove(graph4);
    graph4->moveAbove(graph3);
    graph3->moveAbove(graph2);
    graph2->moveAbove(graph1);

    graph5->setBrush(QBrush("#9dd2e7"));
    graph5->setChannelFillGraph(graph4);

    graph4->setBrush(QBrush("#f39393"));
    graph4->setChannelFillGraph(graph3);

    graph3->setBrush(QBrush("#fbd88a"));
    graph3->setChannelFillGraph(graph2);

    graph2->setBrush(QBrush("#b2db9e"));
    graph2->setChannelFillGraph(graph1);

    graph1->setBrush(QBrush("#889bd8"));

    parentPlot->xAxis->setTicker(ticker);
    parentPlot->xAxis->grid()->setVisible(false);
    parentPlot->xAxis->setRange(0, 8);
    parentPlot->yAxis->setRange(0, 3000);
    parentPlot->legend->setVisible(true);
    parentPlot->legend->setBorderPen(Qt::NoPen);
    parentPlot->legend->setFillOrder(QCPLayoutGrid::foColumnsFirst);
    parentPlot->axisRect()->insetLayout()->setInsetAlignment(0, Qt::AlignHCenter | Qt::AlignTop);
}

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

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

相关文章

【无线感知】【P4】无线感知手势识别- WIFI 感知边界

前言&#xff1a; 这篇是北大2022 在Ubicomp 上面的论文 《placement Matters&#xff1a; understanding the Effects of Device placements for WiFi Sensing》 放置很重要&#xff1a;了解设备放置对WiFi传感的影响 目录&#xff1a; 简介 感知质量定义&#xff08;SSNR…

uniapp小程序button按钮去掉黑色线条

文章目录 导文去除方法 导文 在uniapp的button按钮中有一个莫名其妙的黑色线条 去除方法 button::after{border: none; }该问题并不是所有的手机机型都有&#xff0c;最好添加一下&#xff0c;以防用户手机端样式有问题。 您好&#xff0c;我是肥晨。 欢迎关注我获取前端学习…

LPD6803是专为LED(LED)灯光系统设计的驱动芯片

一般简介: LPD6803是专为LED(LED)灯光系统设计的驱动芯片&#xff0c;它采用先进的高压CMOS芯片工艺&#xff0c;提供三路恒流驱动和灰度调制输出&#xff0c;特别适合离散的多灰度全彩色灯光系统。 LPD6803芯片包括串行移位寄存器和级联驱动电路,灰度数据在时钟…

9.0分下跌至2.5分!110本SSCI影响因子下降!经济学领域SSCI最新IF汇总!

【欧亚科睿学术】 2023影响因子&#xff1a;经济学 1 影响因子概况 在170本经济学领域SSCI期刊中&#xff0c;有60本SSCI期刊2023年影响因子上涨。其中&#xff0c;期刊ECONOMIC POLICY由原来的2.5增长到了4.5&#xff0c;涨幅为2.0&#xff0c;也是经济学领域涨幅最大的SSCI…

【日记】梦到兄长要给鳄鱼换牙齿……(421 字)

正文 今天中午睡了一个小时多一点&#xff0c;做了一个很奇怪的梦。梦见兄长要给一条鳄鱼换牙齿&#xff0c;还说早上不好操作&#xff0c;要三天之后的中午或晚上&#xff0c;颇有一种翻黄历寻个良辰吉日之感。但我没那样大的耐性&#xff0c;便捏住鳄鱼的嘴&#xff0c;左摔右…

如何编写基本的Java程序

安装Java Development Kit&#xff08;JDK&#xff09;是开发Java应用程序的第一步。 1.下载JDK Java程序必须运行在JVM上&#xff0c;我们第一件事情就是安装JDK。 1.下载地址&#xff1a;Java Downloads | Oraclehttps://www.oracle.com/java/technologies/downloads/#jdk…

利用Java easyExcel库实现高效Excel数据处理

在Java应用程序中&#xff0c;处理Excel文件是一项常见任务&#xff0c;尤其是在需要读取、写入或分析大量数据时。easyExcel是一个基于Java的高性能Excel处理库&#xff0c;它提供了简洁的API和优化的性能&#xff0c;以简化Excel文件的处理。本文将指导您如何使用easyExcel库…

docker curl:(56) Recv failure: Connection reset by peer

docker容器启动后&#xff0c;查看日志未发现错误&#xff0c;通过查询和分析&#xff0c;发现是期望容器打开的端口与容器实际打开的端口不一致导致。 1&#xff09;docker run -itd -p 8082:8082 vulfocus/log4j2-rce-2021-12-09:latest 2&#xff09;curl localhost:8082 …

“湖仓一体架构及其应用”写作框架,系统架构设计师

论文真题 随着5G、大数据、人工智能、物联网等技术的不断成熟&#xff0c;各行各业的业务场景日益复杂&#xff0c;企业数据呈现出大规模、多样性的特点&#xff0c;特别是非结构化数据呈现出爆发式增长趋势。在这一背景下&#xff0c;企业数据管理不再局限于传统的结构化OLTP…

性能不降反增?缩减率2.64的伪图索引为何有助于RAG

论文题目&#xff1a; Empowering Large Language Models to Set up a Knowledge Retrieval Indexer via Self-Learning 作者单位&#xff1a; 中国人民大学&#xff08;RUC&#xff09;&#xff0c;上海算法创新研究院&#xff08;IAAR&#xff09; 论文地址&#xff1a; h…

微信公众号多域名回调系统V1.5 源码

这是一款基于ThinkPHP6.0开发的微信公众号多域名回调系统。本系统有如下功能&#xff1a; 微信公众号多域名回调功能&#xff1a;微信公众号后台默认只能授权2个网页域名&#xff0c;用本系统突破这个限制&#xff0c;用同一个公众号对接无限多个网站。网站后台支持回调域名白…

【网络安全学习】漏洞扫描:-03- Nikito与Wapiti漏洞扫描的使用

1️⃣ Nikto漏洞扫描 Nikto是一个开源的Web扫描评估程序&#xff0c;它可以对目标Web服务器进行快速而全面的检查&#xff0c;以发现各种潜在的安全问题和漏洞。 &#x1f170;️ 如何使用 ❓ nikto -Display 1234ep -h [域名或IP地址] -o nikto.html # -h参数&#xff1a;指…

用Nuitka打包 Python,效果竟如此惊人!

目录 为什么选择Nuitka&#xff1f; Nuitka的工作原理 Nuitka的工作流程大致如下&#xff1a; 安装Nuitka 实战案例 示例代码 打包程序 运行可执行文件 进阶技巧 优化选项 多文件项目 打包第三方库 使用Python开发一个程序后&#xff0c;将Python脚本打包成独立可执…

【踩坑】修复多GPU通信时all_reduce/broadcast时间不一致的问题

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 背景介绍 原因解释 问题修复 背景介绍 按照网上的说法&#xff0c;计时使用了torch.cuda.Event(enable_timingTrue)和torch.cuda.synchronize(…

windows下 Ubuntu安装docker保姆级教学!非常详细!

保姆级别windows下Ubuntu安装docker教程 卸载原有 Docker执行卸载旧版 docker 命令安装 Docker更新源安装相应的依赖包安装 Docker 镜像使用国内镜像安装安装完成后,对key进行验证安装稳定版的repository再次更新源安装 docker-ce测试是否安装成功更换 docker 源重启 Docker检…

GIT之git clone 时出现如下报错 ERROR

一:Github clone 时出现如下报错 ERROR: You‘re using an RSA key with SHA-1, which is no longer allowed 1.现象 git pull时(或git push, git clone等),出现如下问题。 2. 原因分析 原因是在2022年3月15日之后,github不再支持SHA-1的加密方式了。 3. 解决方案 将…

qmt量化交易策略小白学习笔记第45期【qmt编程之期货行情数据--如何获取日线行情、tick行情】

qmt编程之获取期货行情数据 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 感谢关注&#xff0c;咨询免费开通量化回测与获取实盘权限&#xff0c;欢迎和博主联系&#xff01; 获取日线行情数…

易支付宝塔一键部署项目 懒人专用包 制作

宝塔一键部署说明 https://www.bt.cn/bbs/thread-33063-1-1.html 1. auto_install.json {"php_ext":"fileinfo","chmod":[],"success_url":"install/?step3&jump1","php_versions":"80","db…

【论文速读】|对BusyBox进行模糊测试:利用大语言模型和崩溃重用挖掘嵌入式系统中的漏洞

本次分享论文&#xff1a;Fuzzing BusyBox: Leveraging LLM and Crash Reuse for Embedded Bug Unearthing 基本信息 原文作者&#xff1a;Asmita, Yaroslav Oliinyk, Michael Scott, Ryan Tsang, Chongzhou Fang, Houman Homayoun 作者单位&#xff1a;1. University of Ca…

GD32F303 低功耗模式要点

我们都知道&#xff0c;MCU有低功耗模式&#xff0c;比如GD32F303芯片&#xff0c;就有Sleep、Deepsleep和Standby三种模式。关于这三种模式的具体使用方法&#xff0c;小伙伴们可以参考《GD32F30x系列用户手册》。 今天我们来聊下几个低功耗模式要点。 1、进入低功耗模式后I…