47.QT-QChart之曲线图,饼状图,条形图使用

 1.使用准备

在pro中, 添加QT+= charts

然后在界面头文件中添加头文件并声明命名空间,添加:

#include <QtCharts>
QT_CHARTS_USE_NAMESPACE

 

2.QChart之曲线图

绘制曲线图需要用到3个类

  • QSplineSeries:  用于创建有由一系列数据组成的曲线.类似的还有QPieSeries(饼图数据). QLineSeries(折线数据)
  • QChart:    图表界面,用来管理图表内容,颜色,大小等
  • QChartView:  负责显示QChart

效果如下:

代码如下所示:

    m_chart = new QChart();QSplineSeries *series1 = new QSplineSeries();//实例化一个QLineSeries对象series1->setColor(QColor(0,100,255));series1->append(QPointF(0,qrand()%200)) ;series1->append(QPointF(30,qrand()%200)) ;series1->append(QPointF(60,qrand()%200)) ;series1->append(QPointF(90,qrand()%200)) ;series1->append(QPointF(120,qrand()%200)) ;series1->setName("线条1");series1->setVisible(true);series1->setPointLabelsFormat("(@xPoint,@yPoint)");series1->setPointLabelsVisible(true);m_chart->setTheme(QChart::ChartThemeLight);//设置白色主题m_chart->setDropShadowEnabled(true);//背景阴影
m_chart->setAutoFillBackground(true); //设置背景自动填充
m_chart->addSeries(series1);//添加系列到QChart上 m_chart->setTitleBrush(QBrush(QColor(0,0,255)));//设置标题Brushm_chart->setTitleFont(QFont("微软雅黑"));//设置标题字体m_chart->setTitle("曲线图");//创建X轴和Y轴QValueAxis *axisX = new QValueAxis;axisX->setRange(0,150); //改为setRange(0,1);则表示坐标为动态计算大小的 axisX->setLabelFormat("%dS");QValueAxis *axisY = new QValueAxis;axisY->setRange(0,250); //改为setRange(0,1);则表示坐标为动态计算大小的 axisY->setTitleText("value值");m_chart->setAxisX(axisX,series1);m_chart->setAxisY(axisY,series1);//m_chart->createDefaultAxes(); //或者创建默认轴//修改说明样式m_chart->legend()->setVisible(true);m_chart->legend()->setAlignment(Qt::AlignBottom);//底部对齐m_chart->legend()->setBackgroundVisible(true);//设置背景是否可视m_chart->legend()->setAutoFillBackground(true);//设置背景自动填充m_chart->legend()->setColor(QColor(222,233,251));//设置颜色m_chart->legend()->setLabelColor(QColor(0,100,255));//设置标签颜色m_chart->legend()->setMaximumHeight(50);QChartView *chartView = new QChartView(m_chart);chartView->setRenderHint(QPainter::Antialiasing);QVBoxLayout *pVLayout = new QVBoxLayout(this);pVLayout->addWidget(chartView);resize(960, 720);

3.QChart之饼图

绘制饼图需要用到3个类

  • QSplineSeries:   用于创建有由一系列数据组成的饼图数据
  • QChart:    图表界面,用来管理图表内容,颜色,大小等
  • QChartView:负责显示QChart

效果如下:

 

代码如下:

    m_chart = new QChart();QPieSeries *series = new QPieSeries();series->append("水果:30%",3);     //添加标签"水果:30%" 和 百分值30%series->append("零食:20%",2);series->append("主食:50%",5);series->setLabelsVisible(true);series->setUseOpenGL(true);series->slices().at(0)->setColor(QColor(13,128,217));   //设置颜色series->slices().at(0)->setLabelColor(QColor(13,128,217));series->slices().at(1)->setColor(QColor(69,13,217));series->slices().at(1)->setLabelColor(QColor(69,13,217));
series
->slices().at(2)->setColor(QColor(13,217,152));series->slices().at(2)->setLabelColor(QColor(13,217,152));m_chart->setTheme(QChart::ChartThemeLight);//设置白色主题m_chart->setDropShadowEnabled(true);//背景阴影m_chart->addSeries(series);//添加系列到QChart上 m_chart->setTitleBrush(QBrush(QColor(0,0,255)));//设置标题Brushm_chart->setTitleFont(QFont("微软雅黑"));//设置标题字体m_chart->setTitle("饼状图");//修改说明样式m_chart->legend()->setVisible(true);m_chart->legend()->setAlignment(Qt::AlignBottom);//底部对齐m_chart->legend()->setBackgroundVisible(true);//设置背景是否可视m_chart->legend()->setAutoFillBackground(true);//设置背景自动填充m_chart->legend()->setColor(QColor(222,233,251));//设置颜色m_chart->legend()->setLabelColor(QColor(0,100,255));//设置标签颜色m_chart->legend()->setMaximumHeight(50);QChartView *chartView = new QChartView(m_chart);chartView->setRenderHint(QPainter::Antialiasing);QVBoxLayout *pVLayout = new QVBoxLayout(this);pVLayout->addWidget(chartView);resize(960, 720);

4. QChart之条形图

绘制条形图需要用到4个类

  • QBarSet: 一个条形集合
  • QBarSeries:  用来封装多个QBarSet的条形数据
  • QChart:   图表界面,用来管理图表内容,颜色,大小等
  • QChartView:  负责显示QChart

效果如下:

 

代码如下:

    m_chart = new QChart();//创建3个条线数据QBarSet *set0 = new QBarSet("零食");QBarSet *set1 = new QBarSet("水果");QBarSet *set2 = new QBarSet("主食");*set0 << 158 << 685 << 458 << 260 << 354;    //向零食数据添加这4个月的销售数据*set1 << 350 << 725 << 602 << 523 << 458;*set2 << 222 << 350 << 598 << 480 << 687;set0->setLabelColor(QColor(0,0,255));       //设置条形数据颜色set1->setLabelColor(QColor(0,0,255));set2->setLabelColor(QColor(0,0,255));QBarSeries *series = new QBarSeries();series->append(set0);series->append(set1);series->append(set2);series->setVisible(true);series->setLabelsVisible(true);m_chart->setTheme(QChart::ChartThemeLight);//设置白色主题m_chart->setDropShadowEnabled(true);//背景阴影m_chart->addSeries(series);//添加系列到QChart上
m_chart->setTitleBrush(QBrush(QColor(0,0,255)));//设置标题Brushm_chart->setTitleFont(QFont("微软雅黑"));//设置标题字体m_chart->setTitle("超市销售条形图");//创建X轴和Y轴QBarCategoryAxis *axisX = new QBarCategoryAxis;axisX->append("一月");axisX->append("二月");axisX->append("三月");axisX->append("四月");axisX->append("五月");axisX->setLabelsColor(QColor(7,28,96));QValueAxis *axisY = new QValueAxis;axisY->setRange(0,1000);   //改为setRange(0,1);则表示坐标为动态计算大小的axisY->setTitleText("价格");axisY->setLabelFormat("%d$");m_chart->setAxisX(axisX,series);m_chart->setAxisY(axisY,series);//修改说明样式m_chart->legend()->setVisible(true);m_chart->legend()->setAlignment(Qt::AlignBottom);//底部对齐m_chart->legend()->setBackgroundVisible(true);//设置背景是否可视m_chart->legend()->setAutoFillBackground(true);//设置背景自动填充m_chart->legend()->setColor(QColor(222,233,251));//设置颜色m_chart->legend()->setLabelColor(QColor(0,100,255));//设置标签颜色m_chart->legend()->setMaximumHeight(50);QChartView *chartView = new QChartView(m_chart);chartView->setRenderHint(QPainter::Antialiasing);QVBoxLayout *pVLayout = new QVBoxLayout(this);pVLayout->addWidget(chartView);resize(960, 720);

 

转载于:https://www.cnblogs.com/lifexy/p/10985191.html

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

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

相关文章

Docker 部署应用、jar 工程 docker 方式部署

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 把要部署的工程打成一个jar包。&#xff08;我的工程叫 gentle &#xff09; 打 jar 的方法&#xff1a;超简单方法&#xff1a; Int…

流浪不是我的初衷 ... ...

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 或许&#xff0c;我从来就是一个习惯沉默的人 ... 或许&#xff0c;我从来就不善于倾述 ... 会有难过的时候&#xff0c;会有觉得累的…

第二阶段冲刺(2)

1、整个项目预期的任务量 &#xff08;任务量 所有工作的预期时间&#xff09;和 目前已经花的时间 &#xff08;所有记录的 ‘已经花费的时间’&#xff09;&#xff0c;还剩余的时间&#xff08;所有工作的 ‘剩余时间’&#xff09; &#xff1b; 所有工作的预期时间&#…

VS2008+OpenCL环境配置

1. 配置.cl文件支持: 1.1. 打开VS2008&#xff0c; 工具->选项->文本编辑器->文件扩展名&#xff0c;添加一个新的扩展名&#xff0c;指定编辑器为Microsoft Visual C 。这样在OpenCL文件中就能显示C的语法高亮了。 1.2. 配置OpenCL语法高亮 - 打开目录~\NVIDIA Corpo…

第十二周学习进度报告

代码时间&#xff1a;17小时左右&#xff0c; 代码量&#xff1a;300行左右&#xff0c; 阅读&#xff1a;一个app的诞生20页&#xff1b;构建之法30页 知识&#xff1a;抽象典型用户&#xff08;具有代表性&#xff09;和场景&#xff0c;去设计相应功能。 转载于:https://www…

我的桃花源

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 看了一个动画片&#xff08;《猫与桃花源》&#xff09;&#xff0c;画风和内容并不是我最偏好的... 但故事结尾的旁白和歌曲却打动了一…

promise实例

不废话&#xff0c;粘代码 function ajax(method, url, data) {let request new XMLHttpRequest();return new Promise(function (resolve, reject) {request.onreadystatechange function () {if (request.readyState 4) {if (request.status 200) {resolve(request.respo…

华为路由器配置DHCP中继

DHCP(动态主机配置协议)理论知识&#xff1a;DHCP主要用来为客户机自动配置I P地址相关的网络参数&#xff0c;包括IP地址、子网掩码、默认网关、DNS服务器等。 DHCP 通信为广播的方式&#xff0c;因此当需要 DHCP 服务器为不同广播域&#xff08;路由或 VLAN 网段&#xff09;…

基于GPU的K-Means聚类算法

聚类是信息检索、数据挖掘中的一类重要技术&#xff0c;是分析数据并从中发现有用信息的一种有效手段。它将数据对象分组成为多个类或簇&#xff0c;使得在同一个簇中的对象之间具有较高的相似度&#xff0c;而不同簇中的对象差别很大。作为统计学的一个分支和一种无监督的学习…

IntelliJ IDEA 工具篇之如何切换 git 分支

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1、进入项目和工程。 2、点击右下角的git:master&#xff0c;然后选择origin/master&#xff0c;然后选择你要切换的分支&#xff0c;我…

IDEA---SpringBoot同一个项目多端口启动

-Dserver.port xxxx 转载于:https://www.cnblogs.com/tonyzt/p/10987116.html

好程序员Web前端分享无法忽视的JavaScript技巧

好程序员Web前端分享无法忽视的JavaScript技巧。在大家从事web前端的工作中&#xff0c;很容易忽视一些JavaScript的小技巧&#xff0c;今天为大家总结了一些容易被大家忽略的技巧&#xff0c;希望能够对大家有所帮助。1、过滤唯一值Set类型是在ES6中新增的&#xff0c;它类似于…

GPU通用计算调研报告

摘要&#xff1a;NVIDIA公司在1999年发布GeForce256时首先提出GPU&#xff08;图形处理器&#xff09;的概念&#xff0c;随后大量复杂的应用需求促使整个产业蓬勃发展至今。GPU在这十多年的演变过程中&#xff0c;我们看到GPU从最初帮助CPU分担几何吞吐量&#xff0c;到Shader…

git 图形化工具 GitKraken 的使用 —— 分支的创建与合并

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 分支管理是Git工作流的重点 在之前的文章中通过GitKraken可以很清楚的看到&#xff0c;每一次commit&#xff0c;git把他们串成了一条线…

ubuntu11.04下CUDA4.0的安装与配置

1&#xff1a;下载CUDA 4.0 安装官网最新的显卡驱动&#xff1a; 安装方法可以参考&#xff1a; 《Ubuntu11.04下安装Nvidia显卡驱动的方法》 然后从NVIDIA网站&#xff08;http://developer.nvidia.com/cuda-downloads&#xff09;下载 CUDA Toolkit for Ubuntu Linux 10.10&a…

GitKraken - 简单教程

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 简单介绍&#xff1a;外观 GitKraken首页预览图 常用快捷键 模糊搜索&#xff1a;(cmd p) 在进行模糊搜索的时候会在当前页面弹出一个…

LeetCode刷题第二天——3Longest Substring Without repeating character 4 Median of Two Sorted Arrays...

混淆点&#xff1a; 子串 连续 子序列 可以不连续 知识点&#xff1a; HashMap&#xff1a; 出现问题&#xff1a; 1.使用unordered_map头文件时报错 #error This file requires compiler and library support for the ISO C 2011 standard. This support is currently experi…

【BZOJ 3339 / BZOJ 3585 / luogu 4137】Rmq Problem / mex

【原题题面】传送门 【题解大意】 都说了是莫队练习题。 考虑已知[l,r]区间的mex值时&#xff0c;如何求[l1,r]的mex值。 比较a[l1]与已知ans的大小&#xff0c;如果a[l1]>ans或者a[l1]<ans&#xff0c;均对答案没有影响。 如果a[l1]ans&#xff0c;考虑找到一个比当前an…

postman 无法正常返回结果 Could not get any response

在浏览器输入地址可以返回结果&#xff0c;但是由于返回的json没有格式&#xff0c;看起来比较麻烦&#xff0c;用postman却报错Could not get any response。 可以注意到下面写了可能的情况&#xff1a;比如服务器无响应&#xff08;由于浏览器可以访问&#xff0c;所以排除…

在Windows 下使用OpenCL

目前&#xff0c;NVIDIA和AMD的Windows driver均有支援OpenCL&#xff08;NVIDIA的正式版driver是从195.62版开始&#xff0c;而AMD则是从9.11版开始&#xff09;。NVIDIA的正式版driver中包含OpenCL.dll&#xff0c;因此可以直接使用。AMD到目前为止&#xff0c;则仍需要安装其…