参考链接:

QT -- QChart画柱状图 - 手磨咖啡 - 博客园

QChart的简单使用_折现图-CSDN博客_qchart

QtCharts_饼图QPieSeries_有志者事竟成-CSDN博客

Qchart的两种显示方法

这是一个刚毕业的职场小白,边学边记录的一些小知识。

如有问题请多指教,如有侵权纯属意外,望告知删除。

目录

一、前期准备

1.1 命名空间

1.2 pro文件

1.3 一点逻辑

二、柱状图

2.1 理论逻辑

1、QBarSet

2、QBarSeries

3、QBarCategoryAxis

4、代码示例

6、柱状补充

三、折线图

四、饼图


一、前期准备

1.1 命名空间

在使用QCharts的各个控件之前,必须先声明一个命名空间:

在程序的开头加上一句 using namespace Qtcharts

或者一个宏 QT_CHARTS_USE_NAMESPACE

然而我加载命名空间时报错:error: 'QT_CHARTS_USE_NAMESPACE' does not name         a type; did you mean 'QT_USE_NAMESPACE'?

这是因为没有添加头文件:

#include <QtCharts>

1.2 pro文件

pro文件中添加QT += charts

1.3 一点逻辑

(图片来源于网络)

1、series

该类将一系列数据,按类别分组。

举个栗子:折线图中将QBarSet中的竖条,按类别分组。

这个类会将每个人的一条数据添加到series中,形成一组数据。

2、Qchart

管理图标、图例和坐标轴的图形表示

3、QchartView容器

series包含在chart中,chart包含在chartView中显示。

QChart本身是用来存放需要展示的控件的类,

QChartView则是用于人眼识别观察的入口。

对于界面所有的更改都是在QChart上发生的,不过界面显示通过QChartView渲染

纯属个人理解,如有错误望指出

二、柱状图

2.1 理论逻辑

1、QBarSet

所有向下的箭头都属于一组QBarSet

即QBarSet类表示条形图中的一组条形

图标也是通过QBarSet设置

2、QBarSeries

将每一条QBarSet(假设一个QBarSet是一个人)

即,将每个QBarSet按类分组,将上面QBarSet中的n个人放置到series中

3、QBarCategoryAxis

可以设置坐标轴标识名称。

4、代码示例

柱状图:

    /** QBarSet表示条形图中的一组条形* 一个Bar集包含每个类别的一个数据值*///26-30行 定义了表下方的标签QBarSet *set0 = new QBarSet("Jane");QBarSet *set1 = new QBarSet("John");QBarSet *set2 = new QBarSet("Axel");QBarSet *set3 = new QBarSet("Mary");QBarSet *set4 = new QBarSet("Samantha");//33-37行 给柱状赋值*set0 << 1 << 1 << 3 << 4 << 5 << 6;*set1 << 1 << 1 << 3 << 4 << 5 << 6;*set2 << 1 << 1 << 3 << 4 << 5 << 6;*set3 << 1 << 1 << 3 << 4 << 5 << 6;*set4 << 1 << 1 << 3 << 4 << 5 << 6;/** QBarSeries* 这个类以垂直条的形式呈现一系列数据,按类别分组* 将数据绘制为一系列按类别分组的竖线,每个类别中有一条竖线添加到这个系列中*/QBarSeries *series = new QBarSeries();series->append(set0);series->append(set1);series->append(set2);series->append(set3);series->append(set4);//将series添加到chart中QChart *chart = new QChart();chart->addSeries(series);chart->setTitle("plane pillarMap");chart->setAnimationOptions(QChart::SeriesAnimations);/** QBarCategoryAxis* 将类别添加到图表的轴中* 可以使用该类设置带有标记、网格线和阴影的轴线* 它还可以和线系列一起使用,如Line和BarChart。** QBarCategoryAxis:柱状图坐标文字描述* QValueAxis:设置坐标轴范围*/QStringList categories;categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";//实例化坐标轴文字标识轴QBarCategoryAxis *axis = new QBarCategoryAxis();//将文字放入标识轴中axis->append(categories);//创建默认的坐标轴chart->createDefaultAxes();//设置坐标轴chart->setAxisX(axis, series);//设置图例为显示状态chart->legend()->setVisible(true);//设置图例位置为底部chart->legend()->setAlignment(Qt::AlignBottom);//将chart添加到chartView显示容器中QChartView *chartview = new QChartView(chart);chartview->setRenderHint(QPainter::Antialiasing);//显示到界面上this->setCentralWidget(chartview);

6、柱状补充

其中赋值中给每个人(QBarSet)的六个值赋值。

然后依次显示到坐标轴上,其中按照下图红框的形式,呈现一组一组显示。

其中还包括百分比堆叠柱状图:

将数据序列QBarSeries换成QPercentBarSeries即可。

横向百分比堆叠柱状图:

QHorizontalPercentBarSeries

堆叠柱状图:

QStackedBarSeries

三、折线图

可结合上述学习参考链接学习下列代码(建议直接观看原文更清晰)

    //蓝色折线QLineSeries *pLineSeriesBule = new QLineSeries();pLineSeriesBule->setPen(QPen(Qt::blue, 1, Qt::SolidLine));pLineSeriesBule->append(1, 5);pLineSeriesBule->append(3,4);QList<QPointF> list;list << QPointF(4, 8) << QPointF(6,10) << QPointF(7,3) <<QPointF(10, 6);pLineSeriesBule->append(list);pLineSeriesBule->setName("A");//红色折线QLineSeries *pLineSeriesRed = new QLineSeries();//颜色,线条数量,线型pLineSeriesRed->setPen(QPen(Qt::red, 1, Qt::SolidLine));//赋值方式1pLineSeriesRed->append(1, 1);//赋值方式2QList<QPointF> list1;list1 << QPointF(2, 3) << QPointF(4, 2) << QPointF(5, 0) << QPointF(10, 6);pLineSeriesRed->append(list1);//设置图标名称pLineSeriesRed->setName("B");//将series添加到chartQChart *chart = new QChart();chart->addSeries(pLineSeriesBule);chart->addSeries(pLineSeriesRed);//图表标题chart->setTitle("title brokenMap plane");//创建坐标轴chart->createDefaultAxes();//将chart放入chartview容器中QChartView *chartview = new QChartView(chart);//设置chartview渲染属性为抗混叠chartview->setRenderHint(QPainter::Antialiasing);this->setCentralWidget(chartview);

四、饼图

可直接观看文章开头参考链接。

    QPieSeries *series = new QPieSeries();//图标名称,占比series->append("10%", 1);series->append("20%", 2);series->append("70%", 7);series->setLabelsVisible();//设置颜色QPieSlice *slice_red = series->slices().at(0);QPieSlice *slice_green = series->slices().at(1);QPieSlice *slice_blue = series->slices().at(2);slice_red->setColor(QColor(255,0,0,255));slice_green->setColor(QColor(0,255,0,255));slice_blue->setColor(QColor(0,0,255,255));//将series添加到chart中//设置图例和标题QChart *chart = new QChart();chart->addSeries(series);chart->setTitle("PirMap");chart->legend()->hide();//隐藏图例//将chart添加到chartView中QChartView *chartview = new QChartView(chart);chartview->setRenderHint(QPainter::Antialiasing);//显示到界面上this->setCentralWidget(chartview);

五、曲线图

代码是大概代码,以下代码做不出如上效果。

//series
//创建曲线条
QSplineSeries *seriesA = new QSplineSeries;
//定义图例名
seriesA->setName(QStringLiteral("全部故障"));
//显示坐标点
seriesA->setPointsVisible(true);
//给曲线赋值
seriesA->append(x--int, y--int);//QChart
QChart *chart = new QChart();
//绑定series
chart->addSeries(seriesA);
//默认坐标轴
chart->createDefaultAxes();
//修改X轴
QValueAxis *axisX = new QValueAxis;
//设置内容范围
axisX->setRange(min--int, max--int);
axisX->setLabelFormat("%d");//整型增加
axisX->setTitleText(QStringLiteral("年份"));//X轴名称
//绑定曲线到坐标轴
chart->setAxisX(axisX, seriesA);//绑定chart到chartview
QChartView *chartview = new QChartView(chart);
chartview->setRenderHint(QPainter::Antialiasing);
this->setCentralWidget(chartview);

qtCharts----柱状图、折线图、饼图、曲线图相关推荐

  1. 【Axure交互教程】图表载入效果(柱状图/折线图/饼图)

    作品名称:图表载入效果 作品编号:Case004 软件版本:Axure9 作品类型:交互案例 我们在设计原型时会经常使用到图表,给图表加一点载入时的动效会让图表更加生动.今天我们来简单介绍下在Axur ...

  2. 从后端数据库获取数据并传值到前端vue项目的echarts柱状图/折线图/饼图里

    不同图表的数据获取有一定的区别 在这些区别上花了不少功夫试验,把最后成功的方法做个记录,如果有类似项目要做的话,也可看看当个参考. 后端 后端都大同小异,方法上没有区别,在这里以柱状图为例. sql: ...

  3. java使用poi在word中生成柱状图、折线图、饼图、柱状图+折线图组合图、动态表格、文本替换、图片替换、更新内置Excel数据、更新插入的文本框内容、合并表格单元格;

    本文参考地址:https://blog.csdn.net/wangxiaoyingWXY/article/details/95377533 在参考文章的基础上,增加了扩展.感谢被参考的妹子.另外该博客 ...

  4. java + jfreechart + itextpdf创建折线图饼图并导出为pdf

    一.添加需要的maven依赖 <!--用于生成pdf--> <dependency><groupId>com.itextpdf</groupId>< ...

  5. php制作曲线柱形图的框架,用GD图库生成横竖柱状图折线图的类_php

    最近写的一个GD图库用以生成横竖柱状图和折线图的类库,算是一个教学例程吧 Class ImageReport{ var $X;//图片大小X轴 var $Y;//图片大小Y轴 var $R;//背影色 ...

  6. 柱状图折线图混合使用

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>柱状图 ...

  7. Origin: 双Y轴 | 柱状图 | 折线图 | 垂线散点图的结合绘制

    origin | 双Y轴 | 添加图层 | 柱状图 | 折线图 | 散点图 一.前言 二.数据准备 三.绘图 3.1 图层1-绘制柱状图 3.2 图层2-折线图的绘制 3.2.1 添加新图层-折线图 ...

  8. 使用canvas画折线图和曲线图

    使用canvas画折线图和曲线图 贝塞尔曲线如果想要在p0=>p2的过程中经过p1,那么需要计算出pc的值,在canvas之中作为控制点 二次贝塞尔曲线转换为三次 上面只是简单介绍,具体的参考文 ...

  9. 论文的一般写作流程注意事项及如何用Word进行科研绘图 ?(三线图,模型结构图,折线图,曲线图)

    论文写作需要注意以下几点问题,很重要!!! 1.论文里面千万不可以出现"我"这个词,论文具有科学的严肃性.严谨性,避免出现"我"人称代词.当然现在也有很多的论文 ...

  10. 【python科研绘图】双y轴并列柱状图+折线图+数据表结合,并封装图形绘制函数

    双y轴并列柱状图+折线图+数据表结合 1. 论文原图 2 数据准备 3 代码实现步骤拆解 3.1 导入第三方库 3.2 数据赋值 3.3 数据绘图 4 函数封装 手动反爬虫: 原博地址 https:/ ...

最新文章

  1. 通过xmanager远程连接redhat linux as 5
  2. Arria10_emif
  3. html复制文字兼容手机,JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)...
  4. WPF - 自定义标记扩展
  5. java盘点系统_2020年度综合大盘点:火爆IT业的7大Java技术,任何一项都是“卧槽牛逼”!...
  6. 配置idea开发go编程语言并配置导入本地包
  7. LinkedIn领英上的几度人脉是什么意思?如何突破领英人脉限制高效率开发客户?
  8. 串口转WiFi透传模块UART转WiFi模块嵌入式WiFi参数一键配置原理
  9. 电脑C盘又满了?教你3个高效清理C盘的方法
  10. 1×pbs缓冲液配方_PBS缓冲液配方.doc
  11. 记:应聘赛意 测试工程师
  12. 理解redux-thunk
  13. STM32+ENC28J60+UIP协议栈实现WEB服务器示例
  14. 论文阅读笔记 | 三维目标检测——Complex-YOLO算法
  15. c/c++: 如何区分c和c++
  16. DSP TMF320F2803x 串行通信接口SCI
  17. HeadFirst:设计模式-观察者模式
  18. linux怎样查看当前文件目录位置
  19. 华为云桌面,助力企业效率办公
  20. 历年高考高校录取分数线

热门文章

  1. 百度被“黑”给网吧敲响 网络暗战的警钟
  2. “笨办法”学Python3,Zed A. Shaw,习题29+30
  3. [转]通过 BT 种子 Hash 值从 BitComet 服务器上下载种子文件
  4. linux 调试c语言,Linux下C语言调试
  5. 周鸿祎区块链五大缺点, 区块链的100个问题
  6. 安装dlib的方法(亲测有效)
  7. manjaro安装搜狗拼音
  8. jakarta-taglibs的使用说明
  9. Java Web中涉及的编解码
  10. phpcms设置双模板 手机端和pc端 phpcms自定义手机端模板 phpcms手机端模板设置