Qt Charts简介

2023-09-20 10:08:56

一.图标类型Charts分类

图表是通过使用系列类的实例并将其添加到QChart或ChartView实例来创建的。

Qt图表模块提供以下图表类型:

1.折线图和样条曲线图

折线图和样条曲线图将数据显示为一系列由直线连接的数据点。在折线图中,数据点由直线连接,而在样条曲线图中,它们由样条曲线连接。样条曲线是使用QPainterPath绘制的。折线图通过使用QLineSeries类实现。样条曲线图是通过使用继承QLineSeriesQSplineSeries类实现的。
在这里插入图片描述

2.面积图和散点图

面积图将数据表示为由两条线限定的区域,而散点图将数据显示为点的集合。
面积图通过使用 QAreaSeries类实现。默认情况下,x轴用作一个边界,QLineSeries用作另一个边界。但是,可以使用 QLineSeries作为两个边界。散点图通过使用 QScatterSeries类实现。

在这里插入图片描述

3.条形图

条形图将数据显示为按类别分组的水平或垂直条形图。QBarSet 类表示条形图中的一组条形图。QAbstractBarSeries 类是所有条形系列类的抽象父类,序列类型决定数据的显示方式。QBarSeries 类将数据显示为按类别分组的垂直条。类似地,QHorizontalBarSeries 类将数据显示为水平条。 QStackedBarSeries类将一系列数据显示为垂直堆叠条形图,每个类别一个条形图。相应的水平类和类型为 QHorizontalStackedBarSeriesQPercentBarSeries类以每个类别的百分比表示一系列分类数据。相应的水平类和类型为QHorizontalPercentBarSeries
在这里插入图片描述
在这里插入图片描述

4.饼图

饼图将数据显示为由饼片组成的饼图。饼图使用QPieSeries 类实现,饼图切片使用 QPieSlice 类添加。

在这里插入图片描述

5.误差棒图

误差棒以四分位数的形式显示数据,并用胡须表示数值的可变性。方框图系列中的项目按类别分组,类似于条形图系列的条形图集。对于每个长方体和胡须项目,指定了下极值、下四分位数、中值、上四分位数和上极值。通过使用QBoxPlotSeriesQBoxSet类实现长方体和胡须图。
在这里插入图片描述

6.烛台图

烛台图表显示了一系列以烛台形式显示的数据。

通过使用QCandlestickSeriesQCandlestickSet 类实现烛台图表。
在这里插入图片描述

7.极坐标图

极坐标图以圆形图形显示数据,其中数据的放置基于与图形中心极坐标的角度和距离。

QPolarChart类是 QChart类的专门化。它支持直线、样条曲线、面积和散点序列,以及它们支持的所有轴类型。该轴可以用作径向轴或角度轴。
在这里插入图片描述

二.坐标轴Axes类型分类

Qt图表支持以下轴类型:

  • Value axis:数值坐标轴,将实际值添加到图表的轴。它是使用 QValueAxis类实现的。
  • Category axis:分类坐标轴,是使用 QCategoryAxis 类实现的。它具有命名范围和可调整范围宽度。
  • Bar category axis:条形图分类轴,与类别轴类似,但所有范围的范围宽度相同。使用 QBarCategoryAxis类实现条类别轴。
  • Date-time axis:日期时间坐标轴,将日期和时间添加到图表的轴。它是使用 QDateTimeAxis类实现的。
  • Logarithmic value axis:对数值坐标轴,将对数刻度添加到图表的轴上。对数刻度是基于数量级的非线性刻度,因此轴上的每个刻度线都是上一个刻度线乘以一个值。使用 QLogValueAxis类实现对数轴。

可以设置轴以显示带有刻度线、网格线和阴影的线。轴上的值绘制在刻度标记的位置。所有轴类型都是QAbstractAxis类的特殊化。可以为一个图表定义多个轴。轴可以放在图表的下方、上方、左侧或右侧。此外,轴可以是不同类型的。但是,不支持混合会导致不同域的轴类型,例如在同一方向上指定 QValueAxisQLogValueAxis

三.图例

图例是显示图表图例的图形对象。无法创建或删除图例对象,但可以通过 QChart类引用它们。当序列更改时, QChart会更新图例状态。图例可以位于图表下方或上方,也可以位于图表的左侧或右侧。默认情况下,图例附加到图表视图,但可以分离到单独的图形项目,该项目可以自由移动。可以从图例或整个图例中隐藏单个标记。图例标记可以通过使用QLegendMarker基类和每个系列类型的子类进行修改:QAreaLegendMarker, QBarLegendMarker, QBoxPlotLegendMarker, QCandlestickLegendMarker, 和 QXYLegendMarker.

四.图表的互动

  1. 与图表交互,最终用户可以通过向图表动态添加值、深入数据、放大和缩小图表、滚动图表、单击图表中的项目或将鼠标悬停在图表上,与图表进行交互。
  2. 动态图形数据,可以动态地向图表中添加数据,并使图表视图自动滚动以显示新数据。
  3. 详细数据显示,钻取效果可以实现为条形图或饼图。当用户在图表中选择项目时,将显示该项目的更详细视图。
  4. 缩放和滚动,用户可以使用键盘缩放和滚动。他们可以使用箭头键滚动图表,使用加号和减号键放大或缩小图表。此外,QRubberBand可用于选择要放大的区域。
  5. 单击并悬停,可以将插槽连接到终端用户单击图表中的项目或将鼠标悬停在其上时发出的信号。这能够向图表中添加元素,如标注。

五.图表样式主题

Qt图表具有以下预定义主题:

  • Light theme, which is the default theme:高亮主题
  • Cerulean blue theme:蓝色主题
  • Dark theme:深色主题
  • Sand brown theme:沙棕色主题
  • Natural color system (NCS) blue theme:自然蓝色主题
  • High contrast theme:高对比度主题
  • Icy blue theme:冰蓝色主题
  • Qt theme:Qt类型主题

可以通过更改颜色、笔、画笔和字体来定制主题。可以通过修改Qt图表源代码来添加新主题。

  1. ChartThemeLight
    在这里插入图片描述

  2. ChartThemeBlueCerulean
    在这里插入图片描述

  3. ChartThemeDark

    在这里插入图片描述

  4. ChartThemeBrownSand

在这里插入图片描述

  1. ChartThemeBlueNcs

    在这里插入图片描述

  2. ChartThemeHighContrast

    在这里插入图片描述

  3. ChartThemeBlueIcy

    在这里插入图片描述

  4. QT

    在这里插入图片描述

内容说明
QChart::NoAnimation0x0图表中禁用动画。这是默认值。
QChart::GridAxisAnimations0x1在图表中启用网格轴动画。
QChart::SeriesAnimations0x2图表中已启用系列动画。
QChart::AllAnimations0x3图表中启用了所有动画类型。
更多推荐

在Java开发中无法绕开的框架:SpringBoot

SpringBoot简介SpringBoot是一个基于Spring框架的快速开发框架,它的出现极大地简化了Spring应用的开发流程。SpringBoot通过自动配置和约定大于配置的方式,让开发者可以快速搭建一个可运行的、独立的、生产级别的应用程序。SpringBoot的优点不仅仅在于它的快速开发,还在于它的可扩展性和

【校招VIP】前端操作系统之存储管理加密

考点介绍加密算法有很多,如不可逆的摘要算法MD5、SHA(安全哈希算法),可逆的Base64编码,对称加密算法DES、AES,还有非对称加密算法DH、RSA等。那是不是说明我们可以使用任何一种加密算法就能保证网站的安全性,答案是否。前端操作系统之存储管理加密-相关题目及解析内容可点击文章末尾链接查看!一、考点题目1.下

Linux开发和编程指南:搭建环境、Shell脚本与常见编程语言配置及使用

文章目录Linux开发和编程Linux上的程序开发环境搭建Shell编程和脚本编写常见编程语言在Linux上的开发环境配置和使用PythonJavaC/C++PHP总结python精品专栏推荐python基础知识(0基础入门)python爬虫知识Linux开发和编程在这篇文章中,我们将介绍如何搭建Linux上的程序开发

MySQL学习系列(5)-每天学习10个知识

目录1.锁(Locking)和乐观锁与悲观锁2.分布式系统中保证数据一致性3.MySQL的复制延迟问题及解决方法4.索引比全表扫描更快的情况5.分区剪枝(PartitionPruning)6.使用`LIMIT`和`OFFSET`的技巧7.使用`EXPLAIN`语句分析查询性能8.MySQL事务隔离级别9.死锁(Dead

char s[]和char *s的区别,数组和指针的,堆和栈指针的一些思考

最近在学习的时候看到一个概念,数组不等价于指针,很合理但又很难理解。例如chars[]和char*s有什么区别,前者是数组,后者是指针,个人学习成果如下:1.chars[]和char*s的区别chars[]:①数组,chars[]定义了一个字符数组②内存分配:内存在栈上分配。③大小固定:一旦定义,数组的大小就不能改变。

WMS系统库存分类以优化仓储管理

1.定义库存分类是指根据一定的规则和标准,将仓库中的货物按照特定的属性、特征或需求进行分类和分组的过程。通过库存分类,可以实现对仓库中货物的有序摆放、快速检索、有效管理和合理分配。2.目的库存分类在WMS系统中的应用具有以下目的:-优化空间利用:通过合理分类,将相似属性的货物放置在一起,最大限度地利用仓库空间,提高仓储

群狼调研(长沙顾客满意度调查)开展食品安全群众满意度调查

本文由群狼调研(长沙电信运营商满意度调查)出品,欢迎转载,请注明出处。食品安全群众满意度调查的内容应该涵盖广泛的食品安全领域,从食品产地到生产过程,再到食品标签、监管政策等多个方面。以下是可能包括在食品安全群众满意度调查中的内容:1.食品产地和生产过程:了解公众对食品产地、生产工艺、生产环境等方面的信任程度和满意度。2

征战MINI学习路线

征战MINI学习路线征战MINI与ACX720开发板的具体差异1.时钟电路管脚约束一样,仅仅是位号名称不同,ACX720的晶振位号是U2,征战MINI的位号是X1,如下图所示:2.拨码开关电路管脚约束一样,仅仅是位号名称不同,如下图所示:3.EEPROM电路管脚约束一样,仅仅是位号名称不同,如下图所示:4.LED灯电路

Linux常用命令 - 网络管理与通信命令

网络管理命令ifconfig功能:配置和显示Linux的网络接口和参数。最前面是网卡名。flags里面分别是:UP:表示接口已经启用BROADCAST:表示主机支持广播RUNNING:表示接口在工作中MULTICAST:表示主机支持多播mtu:最大传输单元,1500字节。inet:网卡的IP地址netmask:网络掩码

使用 sklearn 进行数学建模的通用模板

前言无论是本科和研究生都会有的数学建模含金量还是很高的,下面将介绍一下进行数学建模的一些基本操作方法,这里主要是利用sklearn进行建模,包括前期的一些数据预处理以及一些常用的机器学习模型以及一些简单粗暴的通用建模步骤,仅代表我自己意见。一、数学建模常见的问题类型常见的问题类型只有三种:分类、回归、聚类。而明确具体问

数据包络分析(DEA)——CCR模型

写在前面:博主本人大学期间参加数学建模竞赛十多余次,获奖等级均在二等奖以上。为了让更多学生在数学建模这条路上少走弯路,故将数学建模常用数学模型算法汇聚于此专栏,希望能够对要参加数学建模比赛的同学们有所帮助。目录1.模型原理1.1模型介绍1.2数据包络分析的CCR模型1.2.1投入导向的CCR模型1.2.2产出导向的CC

热文推荐