178 折线图-柱形图-饼状图

1.折线图

  • 1、QChart 类继承自 QGraphicsWidget,用于管理图表、图例和轴。
  • 2、QValueAxis 类专门用来自定义图表中 X 和 Y 坐标轴。
  • 3、QLineSeries 类专门用于折线图(曲线)的形式展示数据
//.pro
QT += core  gui charts#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QtCharts>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();//自定义函数实现折线图void myselfLineSeriesFunc();private:Ui::Widget *ui;
};
#endif // WIDGET_H//.c#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//调用此函数myselfLineSeriesFunc();
}Widget::~Widget()
{delete ui;
}void Widget::myselfLineSeriesFunc()
{//实例化图表QChart对象QChart * chart = new QChart;chart->setTitle("全球各国军事增长折线图");ui->graphicsView->setChart(chart);//设置X坐标QValueAxis * axisX = new QValueAxis;axisX->setTitleText("年份");axisX->setRange(2017,2021);//设置范围//axisX->setTickCount(6);//这只刻度个数axisX->setLineVisible(true);axisX->setGridLineVisible(true);//设置网格线是否可见//设置Y坐标QValueAxis * axisY = new QValueAxis;axisY->setTitleText("军事(万亿:美元)");axisY->setRange(2000,10000);//设置范围axisY->setTickCount(5);//这只刻度个数axisY->setLineVisible(true);axisY->setGridLineVisible(true);//设置网格线是否可见//绘制折线图,设置序列QLineSeries * sris1 =new QLineSeries;sris1->setName("中国");sris1->setColor(QColor(255,0,0));//设置序列颜色值//添加数据点到序列sris1->append(2017,5000);sris1->append(2018,6500);sris1->append(2019,4900);sris1->append(2020,8000);sris1->append(2021,8900);sris1->append(2022,9000);QLineSeries * sris2 =new QLineSeries;sris2->setName("美国");sris2->setColor(QColor(0,255,0));//设置序列颜色值//添加数据点到序列sris2->append(2017,6500);sris2->append(2018,7300);sris2->append(2019,7500);sris2->append(2020,8000);sris2->append(2021,8700);sris2->append(2022,9200);QLineSeries * sris3 =new QLineSeries;sris3->setName("俄罗斯");sris3->setColor(QColor(0,0,255));//设置序列颜色值//添加数据点到序列sris3->append(2017,4000);sris3->append(2018,8000);sris3->append(2019,7900);sris3->append(2020,8000);sris3->append(2021,8200);sris3->append(2022,9500);//为QChart添加序列chart->addSeries(sris1);chart->addSeries(sris2);chart->addSeries(sris3);//将序列设置到坐标轴上chart->setAxisX(axisX,sris1);chart->setAxisY(axisY,sris1);chart->setAxisX(axisX,sris2);chart->setAxisY(axisY,sris2);chart->setAxisX(axisX,sris3);chart->setAxisY(axisY,sris3);}

 

2.柱形图

  • 1、QBarSet 类专用于条形图中的一组条形集。
  • 2、QStackedBarSeries 类在 QChart 中用于创建堆积柱状图。
  • 3、QBarCategoryAxis 类用于提供柱状图的轴。 
//.pro
QT       += charts#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QChart>
using namespace QtCharts;#include <QBarSet>
#include <QBarSeries>
#include <QBarCategoryAxis>
#include <QChartView>
#include <QValueAxis>
#include <QStackedBarSeries>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H//.c#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);//创建条形集对象QBarSet * ba = new QBarSet("bar");*ba<<560<<710<<599<<688<<701;QStackedBarSeries *sris = new QStackedBarSeries();sris->append(ba);QChart * chart = new QChart();chart->addSeries(sris);chart->setTitle("某某学校实验班高考成绩分数");QStringList strlist = {"小王","小李","小吴","小张","小赵"};//通过QBarCategoryAxis类将类型添加到图表的轴QBarCategoryAxis * axisX = new QBarCategoryAxis();axisX->append(strlist);axisX->setTitleText("考生姓名");chart->addAxis(axisX,Qt::AlignBottom);//通过QBarCategoryAxis类将类型添加到图表的轴QValueAxis * axisY = new QValueAxis();axisY->setRange(0,750);axisY->setTitleText("高考总分阶梯");chart->addAxis(axisY,Qt::AlignLeft);sris->attachAxis(axisX);sris->attachAxis(axisY);//图例展示chart->legend()->setVisible(false);//设置绘图区与图表边界chart->legend()->setAlignment(Qt::AlignBottom);//将图标显示到图表视图区QChartView * chartView = new QChartView(chart);MainWindow w;w.setWindowTitle("高考成绩--柱状图表展示");w.setCentralWidget(chartView);w.resize(800,500);w.show();return a.exec();
}

3.饼状图 

  • 1、QPieSeries 类专用于提供饼图形状。
  • 2、QPieSlice 类设置颜色。
//.pro
QT       += charts#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QChart>
#include <QtCharts/QPieSeries>
#include <QtCharts/QPieSlice>
#include <QtCharts/QChartView>
using namespace QtCharts;
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H//.cpp#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);//创建饼状图对象QPieSeries *sris =  new  QPieSeries();//新建比例sris->append("70分以下:30%",30);sris->append("70分-85分:40%",40);sris->append("86分-99分:25%",25);sris->append("100分:5%",5);sris->setLabelsVisible();//设置标签属性,可见QPieSlice * sred = sris->slices().at(0);QPieSlice * sgree = sris->slices().at(1);QPieSlice * sblue = sris->slices().at(2);QPieSlice * sblack = sris->slices().at(3);sred->setColor(QColor(255,0,0,255));sgree->setColor(QColor(0,255,0,255));sblue->setColor(QColor(0,0,255,255));sblack->setColor(QColor(0,0,0,255));QChart * chart = new QChart();chart->addSeries(sris);chart->setTitle("饼图形状--班级考试百分制");QChartView *chartview = new QChartView(chart);MainWindow w;w.setCentralWidget(chartview);w.resize(600,600);w.show();return a.exec();
}

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

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

相关文章

Error in onLoad hook: “SyntaxError: Unexpected token u in JSON at position 0“

1.接收页面报错 Error in onLoad hook: "SyntaxError: Unexpected token u in JSON at position 0" Unexpected token u in JSON at position 0 at JSON.parse (<anonymous>) 2.发送页面 &#xff0c;JSON.stringify(item) &#xff0c;将对象转换为 JSO…

前端JS特效第22集:html5音乐旋律自定义交互特效

html5音乐旋律自定义交互特效&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下(全部代码在文章末尾)&#xff1a; <!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>ChimeTime™</title…

【Python】已解决:xml.parsers.expat.ExpatError: no element found: Line 1, column 0

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;xml.parsers.expat.ExpatError: no element found: Line 1, column 0 一、分析问题背景 在使用Python的xml.parsers.expat模块解析XML文件时&#xff0c;有时会…

算法011:最大连续的1的个数

最大连续的1的个数. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/max-consecutive-ones-iii/ 乍一看&#xff0c;这道题很奇怪&#xff0c;什么叫最多翻转k个0&a…

Leetcode3195. 包含所有 1 的最小矩形面积 I

Every day a Leetcode 题目来源&#xff1a;3195. 包含所有 1 的最小矩形面积 I 解法1&#xff1a;遍历 设最左、最右、最上、最下的 1 的行号/列号分别为 left、right、top、bottom&#xff0c;则答案为&#xff1a;(right - left 1) * (bottom - top 1)。 代码&#xf…

新手教学系列——kswapd0 CPU占用100%问题解析与解决

在日常运维中,我们常会遇到一些疑难杂症,其中kswapd0进程CPU占用100%就是一个常见的问题。通常情况下,这个问题是因为内存耗尽,需要使用到swap空间,可以通过调整swap大小或使用比例来控制磁盘读写。然而,今天我要分享的是一个特例,如何在内存并未耗尽且swap使用比例正常…

【STM32项目】基于Stm32搞怪盒子的设计(完整工程资料)

基于stm32搞怪的盒子设计 前言&#xff1a; 最近我看到一个极具创意的搞怪盒子&#xff0c;设计得相当有意思。作为一个热衷于电子DIY的狂热爱好者&#xff0c;怎能错过这样一个有趣的项目呢&#xff1f;于是&#xff0c;我决定亲自动手&#xff0c;设计一个属于自己的、独一无…

Apache Seata分布式事务原理解析探秘

本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 前言 fescar发布已有时日&#xff0c;分布式事务一直是业界备受关注的领域&#xff0c;fesca…

【carla】ubuntu安装carla环境

我们可以通过查看 CARLA 的 GitHub release 页面来找到最新版本的下载链接。 下载 CARLA 压缩包 访问 CARLA Releases 页面&#xff1a; CARLA Releases on GitHub 查找最新版本&#xff1a; 找到最新的版本&#xff0c;点击下载&#xff0c;第一个压缩包 3. 解压 CARLA 包&…

VMware Workstation Pro 17.5.2 + license key

Workstation Pro是专为Windows操作系统设计的功能强大的虚拟化软件平台,它允许用户在其计算机上创建和运行虚拟机,这使他们能够同时与多个操作系统、应用程序和开发环境一起工作。 Workstation Pro的主要特点之一是其易用性,程序提供了直观的界面,允许用户轻松创建、配置和…

RocketMQ NettyRemotingServer、NettyRemotingClient 实例化、初始化、启动源码解析

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任后端开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&#…

数学系C++ 类与对象 STL(九)

目录 目录 面向对象&#xff1a;py&#xff0c;c艹&#xff0c;Java都是,但c是面向过程 特征&#xff1a; 对象 内敛成员函数【是啥】&#xff1a; 构造函数和析构函数 构造函数 复制构造函数/拷贝构造函数&#xff1a; 【……】 实参与形参的传递方式&#xff1a;值…

【LeetCode】螺旋矩阵

目录 一、题目二、解法完整代码 一、题目 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5] 示例 2&…

go-redis 封装事件-client封装模型、批量数据处理的导出器设计

一、redis-go的封装实践-client模型 // Copyright 2020 Lingfei Kong <colin404foxmail.com>. All rights reserved. // Use of this source code is governed by a MIT style // license that can be found in the LICENSE file.package storageimport ("context&q…

Halcon 铣刀刀口破损缺陷检测

一 OTSU OTSU&#xff0c;是一种自适应阈值确定的方法,又叫大津法&#xff0c;简称OTSU&#xff0c;是一种基于全局的二值化算法,它是根据图像的灰度特性,将图像分为前景和背景两个部分。当取最佳阈值时&#xff0c;两部分之间的差别应该是最大的&#xff0c;在OTSU算法中所采…

排序 -- 万能测试oj

. - 力扣&#xff08;LeetCode&#xff09; 这道题我们可以使用我们学过的那些常见的排序方法来进行解答 //插入排序 void InsertSort(int* nums, int n) {for (int i 0; i < n-1; i){int end i;int tmp nums[end 1];while (end > 0){if (tmp < nums[end]){nums[…

PyVideoTrans:一款功能全面的视频翻译配音工具!【送源码】

PyVideoTrans是一款功能全面的视频翻译配音工具&#xff0c;专为视频内容创作者设计。它能够将视频中的语言翻译成另一种语言&#xff0c;并自动生成与之匹配的字幕和配音。支持多种语言&#xff0c;包括但不限于中文&#xff08;简繁体&#xff09;、英语、韩语、日语、俄语、…

Wormhole Filters: Caching Your Hash on Persistent Memory——泛读笔记

EuroSys 2024 Paper 论文阅读笔记整理 问题 近似成员关系查询&#xff08;AMQ&#xff09;数据结构可以高效地近似确定元素是否在集合中&#xff0c;例如Bloom滤波器[10]、cuckoo滤波器[23]、quotient滤波器[8]及其变体。但AMQ数据结构的内存消耗随着数据规模的增长而快速增长…

MSPM0G3507——串口0从数据线传输变为IO口传输

默认的跳线帽时这样的&#xff0c;这样时是数据线传输 需要改成这样&#xff0c;即可用IO口进行数据传输

windows系统本地端口被占用的问题

第一步&#xff1a;查找所有运行的端口 按住“WindowsR”组合键&#xff0c;打开命令窗口&#xff0c;输入【cmd】命令&#xff0c;回车。在弹出的窗口中输入 命令【netstat -ano】&#xff0c;再按一下回车键 Win系统端口被占用-查找所有运行的端口 第二步&#xff1a;查看…