QT中使用图表之QChart绘制面积图

绘制面积图,则系列选择面积系列QAreaSeries

需要给系列设置上折线和下折线(QLineSeries),如果没有设置下折线,则默认x轴为下折线

1、创建图表视图

//1、创建图表视图
QChartView * view = new QChartView(this);
//开启抗锯齿
view -> setRenderHint(QPainter::Antialiasing);

2、创建图表,并将图表设置给图表视图

//2.创建图表
QChart * chart = new QChart();

//3.将图表设置给视图
view -> setChart(chart);
//设置标题
chart -> setTitle("面积图");
chart -> legend() -> show(); //显示或者隐藏图例(默认显示)

3、创建面积系列(QAreaSeries),

      创建上折线和下折线(QLineSeries),并将上下折线设置给面积系列

      设置面积系列的一些属性

      将系列添加到图表中

//创建面积系列
QAreaSeries * area = new QAreaSeries(this);

//需要添加围成面积的下折线和上折线,
//没有上折线,不会显示;没有下折线,默认以x轴为下折线
QLineSeries * upper = new QLineSeries(this);
upper -> append(10, 130);
upper -> append(50, 180);
upper -> append(80, 120);

QLineSeries * lower = new QLineSeries(this);
lower -> append(25, 80);
lower -> append(90, 80);
//将上折线和下折线设置给面积系列
area -> setUpperSeries(upper);
area -> setLowerSeries(lower);

area -> setBrush(Qt::red); //设置面积图的颜色
area -> setPointsVisible(true); //设置点可见
area -> setPointLabelsVisible(true); //设置点的标签可见
area -> setName("哈哈"); //设置图例的内容

//将系列添加进图表中
chart -> addSeries(area);

4、使用QChart::createDefaultAxes()创建默认的x轴和y轴(根据内部的系列

/使用createDefaultAxes()来创建轴
//添加系列后可以创建默认的坐标轴,一定要在addSeries之后调用,根据序列来确定默认的坐标轴
chart -> createDefaultAxes();
chart -> axes(Qt::Horizontal).at(0) -> setRange(0, 100);
chart -> axes(Qt::Vertical).at(0) -> setRange(0, 200);

完整代码

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<QtCharts>
#include<QHBoxLayout>
#include<QAreaSeries>


class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr) : QWidget(parent)
    {
        resize(800,600);
        QHBoxLayout* h_box=new QHBoxLayout(this);

       drawAreaPic();

    }
    ~Widget()=default;
    
    //画面积图
    void drawAreaPic()
    {
        //1、创建图表视图
        QChartView* view=new QChartView(this);
        //开启抗锯齿
        view->setRenderHint(QPainter::Antialiasing);

        this->layout()->addWidget(view);

        //2.创建图表
        QChart* chart=new QChart();

        //3.将图表设置给视图
        view->setChart(chart);
        //设置标题
        chart->setTitle("面积图");
        chart->legend()->show();//显示或者隐藏图例(默认显示)

        //创建面积系列
        QAreaSeries* area=new QAreaSeries(this);

        //需要添加围成面积的下折线和上折线,
        //没有上折线,不会显示;没有下折线,默认以x轴为下折线
        QLineSeries* upper=new QLineSeries(this);
        upper->append(10,130);
        upper->append(50,180);
        upper->append(80,120);

        QLineSeries* lower=new QLineSeries(this);
        lower->append(25,80);
        lower->append(90,80);
        //将上折线和下折线设置给面积系列
        area->setUpperSeries(upper);
        area->setLowerSeries(lower);

        area->setBrush(Qt::red);//设置面积图的颜色
        area->setPointsVisible(true);//设置点可见
        area->setPointLabelsVisible(true);//设置点的标签可见
        area->setName("哈哈");//设置图例的内容

        //将系列添加进图表中
        chart->addSeries(area);

        //使用createDefaultAxes()来创建轴
        //添加系列后可以创建默认的坐标轴,一定要在addSeries之后调用,根据序列来确定默认的坐标轴
        chart->createDefaultAxes();
        chart->axes(Qt::Horizontal).at(0)->setRange(0,100);
        chart->axes(Qt::Vertical).at(0)->setRange(0,200);

    }

};
#endif // WIDGET_H

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

H.265流媒体播放器EasyPlayer.js H.264/H.265播放器chrome无法访问更私有的地址是什么原因

EasyPlayer.js H5播放器&#xff0c;是一款能够同时支持HTTP、HTTP-FLV、HLS&#xff08;m3u8&#xff09;、WS、WEBRTC、FMP4视频直播与视频点播等多种协议&#xff0c;支持H.264、H.265、AAC、G711A、MP3等多种音视频编码格式&#xff0c;支持MSE、WASM、WebCodec等多种解码方…

第02章 CentOS基本操作

2.文件基本操作【文件操作&#xff08;一&#xff09;】 目标 理解Linux下路径的表示方法能够使用命令(mkdir和touch)在指定位置创建目录和文件能够使用命令(rm)删除指定的目录和文件能够使用命令(ls)列出目录里的文件能够使用命令(cat,head,tail,less,more)查看文件内容理解标…

案例精选 | 某知名教育集团基于安全运营平台的全域威胁溯源实践

某知名教育集团成立于1999年&#xff0c;总部位于北京海淀中关村。集团专注于K-12基础教育&#xff0c;构建了从幼儿园到高中的全面教育体系&#xff0c;涵盖学校管理、教学科研、师资培训、信息化服务等多个方面。集团在全国范围内设有15所小学、12所初中、9所高中、6个国际部…

Java-01 深入浅出 MyBatis - MyBatis 概念 ORM映射关系 常见ORM 详细发展历史

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…

nodejs和npm在gitbash中提示Not Found情况的解决办法

很多小伙伴学习了node以后&#xff0c;在cmd命令行中可以正常的获取node版本和npm版本&#xff0c;但是我们经常使用gitbash来管理git&#xff0c;这时候下载完gitbash后&#xff0c;在gitbash中输入node -v和npm -v会提示Not Found。这种情况如何处理&#xff1f;&#xff1f;…

Linux:调试器-gdb/cgdb

文章目录 一、编译成debug1、-g 选项 二、gdb调试命令1、在CentOS系统下检查安装gdb2、进入gdb模式3、quit 退出gdb4、list &#xff08;简写 l&#xff09;显示文件内容5、b 打断点6、 r / run运行程序7、c 让程序直接运行完 三、cgdb1、info b查看打的所有断点2、d 删除断点3…

数据结构 -- 二叉搜索树

二叉搜索树 概念 二叉搜索树又称为二叉排序树&#xff0c;它或为空树&#xff0c;或为具有以下性质的二叉树&#xff1a; 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于等于根节点的值。若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于等于根节…

VScode使用Batch Runner插件在终端运行bat文件

搜索并安装插件Batch Runner 创建测试文件 echo off echo "Hello world"按F5运行

4.STM32之通信接口《精讲》之USART通信---实验串口发送程序

本节将进行实战&#xff0c;基础了解请查看第1&#xff0c;2&#xff0c;3节&#xff08;Whappy&#xff09; 开始背&#xff01;&#xff01; USART ---》全双工 异步/同步 点对点 C语言基础printf用法&#xff0c;这节将用到printf的重定向&#xff0c;来打印到串口助手上…

特征融合篇 | CARAFE:轻量级通用上采样算子,可提高目标检测性能

前言:Hello大家好,我是小哥谈。CARAFE算子的主要特点是在保持轻量级功能的同时,能够提供比其他上采样算子更好的性能。它通过少量的参数和计算量来实现高效的图像上采样。CARAFE算子能够根据像素之间的关系进行自适应的上采样,从而更好地保留图像的细节和语义信息。🌈 …

游戏引擎学习第18天

clang-format 相关的配置可以参考下面 .clang-format 是用来配置代码格式化规则的文件&#xff0c;主要用于 Clang-Format 工具。以下是 .clang-format 文件中的一些常用设置&#xff1a; 1. 基础设置 Language: Cpp # 指定语言 (C, C, Java, JavaScript, etc…

递归(3)----力扣40组合数2,力扣473火柴拼正方形

给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意&#xff1a;解集不能包含重复的组合。 示例 1: 输入: candidates [10,1,2,7,6,1…

SpringBoot Data Redis连接Redis-Cluster集群

使用SpringBoot Data Redis无法连接Redis-Cluster集群 最近在研究系统高并发下的缓存架构&#xff0c;因此自己在自己买的云服务器上搭建好Redis 5.0 版本的集群后&#xff0c;使用springboot的 RedisTemplate连接是发现总是访问不到集群节点。上网百度了发现没有好的解决办法&…

【插件】重复执行 pytest-repeat

安装 pip3 install pytest-repeat 用法 1.命令行 pytest --count num pytest --count 32.装饰器 pytest.mark.repeat(num) #num运行次数 pytest.mark.repeat(5)#执行结果如下&#xff1a;

强制放大缩小(适用于所有ctrl-,ctrl+)

以下操作&#xff1a; 使用资源管理器打开启动文件夹&#xff1a; 按下 Win R 键打开“运行”对话框。输入 shell:startup&#xff0c;然后按下 Enter。这应该会打开启动文件夹。 手动定位启动文件夹&#xff1a; 打开资源管理器并导航到以下路径&#xff1a; C:\Users\admin…

web前端开发网页--css样式的使用

1、css层叠性 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>css层叠性</title><style type"text/css">p{font-size: 12px;font-family: "微软雅黑";}.special{font-size: 24px;}#one{c…

idea 通过git撤销commit但未push的操作

1、undo commit 适用情况&#xff1a;代码修改完了&#xff0c;已经Commit了&#xff0c;但是还未push&#xff0c;然后发现还有地方需要修改不想提交本次记录了。这时可以进行Undo Commit&#xff0c;修改后再重新Commit。注意&#xff1a;如果已经进行了Push&#xff0c;线上…

『VUE』30. 生命周期的介绍(详细图文注释)

目录 生命周期生命周期的8阶段生命周期小例子总结 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 生命周期 每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤&#xff0c;比如设置好数据侦听&#xff0c;编译模板&#xf…

远程jupyter lab的配置

打开虚拟环境 conda activate test 在环境下安装ipykernel软件包&#xff0c;这个软件包允许jupyter notebookl使用特定环境的python版本。 conda install ipykernel 将该环境添加到Jupyter Notebook中 python -m ipykernel install --user --nametest --display-name&quo…

C指针之舞——指针探秘之旅

❤博客主页&#xff1a;折枝寄北-CSDN博客 ❤专栏内容&#xff1a;C语言学习专栏https://blog.csdn.net/2303_80170533/category_12794764.html?spm1001.2014.3001.5482 指针基础学习 在之前的博客文章中&#xff0c;简单总结了指针的基础概念 我们知道了指针的概念&#xf…