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…

第二阶段冲刺(2)

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

华为路由器配置DHCP中继

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

基于GPU的K-Means聚类算法

聚类是信息检索、数据挖掘中的一类重要技术&#xff0c;是分析数据并从中发现有用信息的一种有效手段。它将数据对象分组成为多个类或簇&#xff0c;使得在同一个簇中的对象之间具有较高的相似度&#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把他们串成了一条线…

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;则仍需要安装其…

[Swift]快速反向平方根 | Fast inverse square root

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号&#xff1a;山青咏芝&#xff08;shanqingyongzhi&#xff09;➤博客园地址&#xff1a;山青咏芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;➤GitHub地址&a…

适用于ATI卡的GPU计算MD5的小程序源码,基于AMD APP SDK开发

以下代码在win7 home basic , ati hd 5450平台测试通过&#xff0c;处理速度为每秒100万次。 程序很简单&#xff0c;只有一个main.cpp程序。Device端只有一个md5.cl文件。 下面我把代码贴出来&#xff0c;因为不能上传附件&#xff0c;我把完整工程包放到了242337476的群共享里…

【CentOS 7笔记11】,目录权限,所有者与所有组,隐藏权限#171022

2019独角兽企业重金招聘Python工程师标准>>> shallow丿ove 一. 文件或目录权限change mode r4&#xff0c;w2&#xff0c;x1 selinux开启则权限后面会有个. 更改SElinux配置文件&#xff0c;将永久关闭SElinux [rootlocalhost ~]# vi /etc/selinux/config #将默认…

python字符编码与转码

详细文章: http://www.cnblogs.com/yuanchenqi/articles/5956943.html http://www.diveintopython3.net/strings.html 需知: 1.在python2默认编码是ASCII, python3里默认是unicode 2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节)&#xff0c;utf-8(占1-4个字节)&#xf…

IntelliJ IDEA 详细图解最常用的配置

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 刚刚使用IntelliJ IDEA 编辑器的时候&#xff0c;会有很多设置&#xff0c;会方便以后的开发&#xff0c;磨刀不误砍柴工。 比如&#x…

OpenCL快速入门教程

OpenCL快速入门教程 原文地址&#xff1a;http://opencl.codeplex.com/wikipage?titleOpenCL%20Tutorials%20-%201 翻译日期&#xff1a;2012年6月4日星期一 这是第一篇真正的OpenCL教程。这篇文章不会从GPU结构的技术概念和性能指标入手。我们将会从OpenCL的基础API开始&…

Git使用教程-idea系列中git使用教程

一、新建项目 新建项目后记得复制git仓库的地址。 二、上传项目到git仓库 在你的idea里新建git仓库&#xff0c;这是新建本地仓库&#xff0c;等会会同步到线上git仓库 新建后如果代码不是文件名不是绿色的表示没有加入到git索引中 将需要上传的文件按照下图方式add 添加后&…

分布式开放 消息系统 (RocketMQ) 的原理与实践

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件&#xff0c;需要具有高吞吐量、高可用等特点。而谈到消息系统的设计&…

使用 OpenCL.Net 进行 C# GPU 并行编程

在 初探 C# GPU 通用计算技术 中&#xff0c;我使用 Accelerator 编写了一个简单的 GPU 计算程序。也简单看了一些 Brahma 的代码&#xff0c;从它的 SVN 最新代码看&#xff0c;Brahma 要转移到使用 OpenCL.Net 作为底层了&#xff0c;于是也去网上搜索了一下&#xff0c;发现…