qtCharts----柱状图、折线图、饼图、曲线图
参考链接:
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----柱状图、折线图、饼图、曲线图相关推荐
- 【Axure交互教程】图表载入效果(柱状图/折线图/饼图)
作品名称:图表载入效果 作品编号:Case004 软件版本:Axure9 作品类型:交互案例 我们在设计原型时会经常使用到图表,给图表加一点载入时的动效会让图表更加生动.今天我们来简单介绍下在Axur ...
- 从后端数据库获取数据并传值到前端vue项目的echarts柱状图/折线图/饼图里
不同图表的数据获取有一定的区别 在这些区别上花了不少功夫试验,把最后成功的方法做个记录,如果有类似项目要做的话,也可看看当个参考. 后端 后端都大同小异,方法上没有区别,在这里以柱状图为例. sql: ...
- java使用poi在word中生成柱状图、折线图、饼图、柱状图+折线图组合图、动态表格、文本替换、图片替换、更新内置Excel数据、更新插入的文本框内容、合并表格单元格;
本文参考地址:https://blog.csdn.net/wangxiaoyingWXY/article/details/95377533 在参考文章的基础上,增加了扩展.感谢被参考的妹子.另外该博客 ...
- java + jfreechart + itextpdf创建折线图饼图并导出为pdf
一.添加需要的maven依赖 <!--用于生成pdf--> <dependency><groupId>com.itextpdf</groupId>< ...
- php制作曲线柱形图的框架,用GD图库生成横竖柱状图折线图的类_php
最近写的一个GD图库用以生成横竖柱状图和折线图的类库,算是一个教学例程吧 Class ImageReport{ var $X;//图片大小X轴 var $Y;//图片大小Y轴 var $R;//背影色 ...
- 柱状图折线图混合使用
<!DOCTYPE html> <html><head><meta charset="utf-8"><title>柱状图 ...
- Origin: 双Y轴 | 柱状图 | 折线图 | 垂线散点图的结合绘制
origin | 双Y轴 | 添加图层 | 柱状图 | 折线图 | 散点图 一.前言 二.数据准备 三.绘图 3.1 图层1-绘制柱状图 3.2 图层2-折线图的绘制 3.2.1 添加新图层-折线图 ...
- 使用canvas画折线图和曲线图
使用canvas画折线图和曲线图 贝塞尔曲线如果想要在p0=>p2的过程中经过p1,那么需要计算出pc的值,在canvas之中作为控制点 二次贝塞尔曲线转换为三次 上面只是简单介绍,具体的参考文 ...
- 论文的一般写作流程注意事项及如何用Word进行科研绘图 ?(三线图,模型结构图,折线图,曲线图)
论文写作需要注意以下几点问题,很重要!!! 1.论文里面千万不可以出现"我"这个词,论文具有科学的严肃性.严谨性,避免出现"我"人称代词.当然现在也有很多的论文 ...
- 【python科研绘图】双y轴并列柱状图+折线图+数据表结合,并封装图形绘制函数
双y轴并列柱状图+折线图+数据表结合 1. 论文原图 2 数据准备 3 代码实现步骤拆解 3.1 导入第三方库 3.2 数据赋值 3.3 数据绘图 4 函数封装 手动反爬虫: 原博地址 https:/ ...
最新文章
- 通过xmanager远程连接redhat linux as 5
- Arria10_emif
- html复制文字兼容手机,JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)...
- WPF - 自定义标记扩展
- java盘点系统_2020年度综合大盘点:火爆IT业的7大Java技术,任何一项都是“卧槽牛逼”!...
- 配置idea开发go编程语言并配置导入本地包
- LinkedIn领英上的几度人脉是什么意思?如何突破领英人脉限制高效率开发客户?
- 串口转WiFi透传模块UART转WiFi模块嵌入式WiFi参数一键配置原理
- 电脑C盘又满了?教你3个高效清理C盘的方法
- 1×pbs缓冲液配方_PBS缓冲液配方.doc
- 记:应聘赛意 测试工程师
- 理解redux-thunk
- STM32+ENC28J60+UIP协议栈实现WEB服务器示例
- 论文阅读笔记 | 三维目标检测——Complex-YOLO算法
- c/c++: 如何区分c和c++
- DSP TMF320F2803x 串行通信接口SCI
- HeadFirst:设计模式-观察者模式
- linux怎样查看当前文件目录位置
- 华为云桌面,助力企业效率办公
- 历年高考高校录取分数线
热门文章
- 百度被“黑”给网吧敲响 网络暗战的警钟
- “笨办法”学Python3,Zed A. Shaw,习题29+30
- [转]通过 BT 种子 Hash 值从 BitComet 服务器上下载种子文件
- linux 调试c语言,Linux下C语言调试
- 周鸿祎区块链五大缺点, 区块链的100个问题
- 安装dlib的方法(亲测有效)
- manjaro安装搜狗拼音
- jakarta-taglibs的使用说明
- Java Web中涉及的编解码
- phpcms设置双模板 手机端和pc端 phpcms自定义手机端模板 phpcms手机端模板设置