前言
  QAbstractSeries 继承自 QObject,是所有 Qt Chart series 的基类。
通常使用其特定的继承类而非基类,例如:柱状图、面积图、箱形图、饼图、线性图、曲线图、散点图。
  绘制条形图需要用到3个类
QBarSeries: 用于创建有由一系列数据组成
QChart: 图表界面,用来管理图表内容,颜色,大小等
QChartView: 负责显示QChart

mywidget.h :

#ifndef MYWIDGET_H
#define MYWIDGET_H#include <QWidget>
#include <QtCharts/QChartGlobal>
#include <QtCharts/QChart>
#include <QtCharts/QChartView>
#include <QtWidgets/QWidget>
#include <QtWidgets/QGraphicsWidget>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QGraphicsGridLayout>
#include <QtWidgets/QDoubleSpinBox>
#include <QtWidgets/QGroupBox>#include <QtCharts/QBarSeries>
#include <QtCharts/QBarSet>
#include <QtCharts/QValueAxis>
#include <QtCharts/QBarCategoryAxis>QT_CHARTS_USE_NAMESPACEclass myWidget : public QWidget
{Q_OBJECTpublic:myWidget(QWidget *parent = 0);~myWidget();QChart      *m_chart;QChartView  *m_chartview;QGridLayout *m_gridlayout;QBarSet *set0;QBarSet *set1;QBarSet *set2;
};#endif // MYWIDGET_H

mywidget.cpp :

#include "mywidget.h"myWidget::myWidget(QWidget *parent): QWidget(parent)
{m_chart      = new QChart();m_chartview  = new QChartView(m_chart,this);m_gridlayout = new QGridLayout();m_gridlayout->addWidget(m_chartview,0,0,1,1);setLayout(m_gridlayout);/*添加barset*///添加一组数据,每组数据有三个seriesset0 = new QBarSet("零食");   //set1 = new QBarSet("水果");set2 = new QBarSet("主食");/*一共显示五组数据*/*set0 << 158 << 685 << 458 << 260 << 354;    //向零食数据添加这5个月的销售数据*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->addSeries(series);//添加系列到QChart上/*设置legend样式 颜色 大小 位置等*/m_chart->legend()->setVisible(true);  //是否允许对legend进行设置,就相当于一个总开关,只有打开了才能对legend进行操作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);//设置最大高度/*设置横纵坐标*/QBarCategoryAxis  *AxisX = new QBarCategoryAxis();QValueAxis *AxisY = new QValueAxis();AxisX->append("一月");AxisX->append("二月");AxisX->append("三月");AxisX->append("四月");AxisX->append("五月");AxisX->setLabelsColor(QColor(7,28,96));AxisY->setRange(0,600);m_chart->setAxisX(AxisX,series);m_chart->setAxisY(AxisY,series);
}

注意点:
1:条形图的x轴坐标设置,在曲线图或者饼状图中 我们设置x轴和y轴使用的类是QValueAxis 我们为x和y轴设置的是一个范围。我们常见的条形图的横坐标往往并不是一些数值范围,而是一些需要统计的对象名称或者是某一段时间,这时候QValueAxis就不太适合这种情况,所以我们使用了另一个派生类QBarCategoryAxis他和QValueAxis都继承于QAbstractAxisQBarCategoryAxis是可以有用户自定x轴的。
2:QBarSet的 用法,QBarSet &QBarSet::operator<<(const qreal &value)一种方便的操作符,用于将值指定的实值追加到栏集的末尾。他可以向qdebug()用法一样使用<<符号向里面追加设定值。如:*barset0 << 158 << 685 << 458 << 260 << 354;

QChart之QBarSeries绘制条形图相关推荐

  1. hdc mfc 画扇形图_使用echarts绘制条形图和扇形图

    使用echarts绘制条形图和扇形图 简单举例说明下echarts如何绘制条形图和扇形图 代码示例 echarts绘制条形图和扇形图 var mychart1=echarts.init(documen ...

  2. 如何读取Excel表格中不同sheet表的同一位置单元格数据,并绘制条形图呢?

    作者 | 黄伟呢 来源 | 数据分析与统计学之美 今天,有位朋友在群里面咨询了一个问题:如何读取Excel表格中"不同sheet表"的同一位置单元格数据,并绘制条形图呢? 有人提议 ...

  3. python绘制条形图-python 中条形图绘制

    一.条形图绘制参数详解 1.bar(left, height, width=0.8, bottom=None, color=None, edgecolor=None, linewidth=None, ...

  4. python怎么画条形图-python绘制条形图方法代码详解

    1.首先要绘制一个简单的条形图 import numpy as np import matplotlib.pyplot as plt from matplotlib import mlab from ...

  5. python怎么画条形图-用Matplotlib如何绘制条形图、直方图和散点图

    Matplotlib是一个Python 2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形. 上一篇我们讲解到Matplotlib 中的图例,标题和标签介绍,今天我们开 ...

  6. python绘制条形图-python3使用matplotlib绘制条形图

    本文实例为大家分享了python3使用matplotlib绘制条形图的具体代码,供大家参考,具体内容如下 绘制竖状条形图 代码 from matplotlib import pyplot as plt ...

  7. python中matplotlib条形图-python matplotlib库绘制条形图练习题

    练习一:假设你获取到了2017年内地电影票房前20的电影(列表a)和电影票房数据(列表b),那么如何更加直观的展示该数据? a = ["战狼2","速度与激情8" ...

  8. python绘制条形图-python matplotlib库绘制条形图练习题

    练习一:假设你获取到了2017年内地电影票房前20的电影(列表a)和电影票房数据(列表b),那么如何更加直观的展示该数据? a = ["战狼2","速度与激情8" ...

  9. python3-matplotlib绘制散点图、绘制条形图

    matplotlib 支持的图形 https://matplotlib.org/stable/gallery/index.html 1.绘制散点图 from matplotlib import pyp ...

最新文章

  1. [Gamma阶段]第十次Scrum Meeting
  2. html页面多个按钮点击事件监听事件,HTML Button.onclick 事件汇总
  3. Matplotlib图例中文乱码
  4. 深入解析MySQL分区(Partition)功能
  5. 基于Xml 的IOC 容器-解析配置文件路径
  6. stage3d 骨骼优化
  7. 【例9.8】合唱队形
  8. 宝塔pure-ftpd文件管理不显示目录|文件夹打不开
  9. Discuz 论坛实现qq小程序
  10. 高速计算机的应用领域概括,河北计算机一级考试题-MS模拟试题
  11. 手机的移动网络怎么开_都连接WiFi了,还要开移动网络吗?
  12. 2015年中国互联网大检阅
  13. mw150um 驱动程序win10_水星MW150UM 1.0无线网卡驱动
  14. LaTeX新人教程,30分钟从完全陌生到基本入门
  15. WIN7去掉快捷方式小箭头
  16. 【沉浸式腾讯云服务器部署安装docker】
  17. AutoCAD 2019 常用命令速查手册
  18. 浅谈嵌入式系统的应用场景
  19. Deep Learning for Massive MIMO CSI Feedback-学习笔记
  20. C++OpenCV系统学习(17)——图像分割与抠图(6)——视频背景替换

热门文章

  1. 【建议星星】要就来45道Promise面试题一次爽到底(1.1w字用心整理)
  2. 规则引擎 Drools--决策表(Decision Table)使用简介
  3. 排序算法c语言描述---归并排序
  4. 如何解决收到网监大队信息系统安全等级保护限期整改通知书
  5. 为什么样本方差里面要除以(n-1)而不是n?
  6. 电脑开机密码忘记,如何修改电脑密码?
  7. 计算机wps文字基础知识,计算机一级考试WPS基础练习题(含答案)
  8. device 查看tensor_Tensor数据操作
  9. C++ accumulate()的使用
  10. python中合法的赋值语句是_以下( )是合法的Python赋值语句。_学小易找答案