编程学习
Qt学习19:QtChart图表
00 分钟
2023-8-11
2023-11-23
type
status
date
slug
summary
tags
category
icon
password
Email
💡
落絮无声春堕泪,行云有影月含羞。——吴文英《浣溪沙》
💡
文章首发于我的个人博客:欢迎大佬们来逛逛
🔆
Qt学习的项目地址源码:
Qt-code
luumodUpdated Jul 3, 2023

Qt Charts概述

Qt Charts是图表控件库。

图表类型

Qt Charts模块提供了以下图表类型:
  • 折线图和样条图
  • 面积图和散点图
  • 柱状图
  • 饼图
  • 盒须图
  • 蜡烛图表
  • 极坐标图
每一种图表中的数据类型都是继承自 QAbstractSeries
其子类有:
图表是通过使用系列类的实例并将其添加到QChart或ChartView实例来创建的。

创建图表的最基本流程

  1. 创建 QChartView 的图表场景
  1. 创建指定图表的 Series 数据序列
  1. 将 Series 添加到 QChartView 中
  1. 创建xy轴(也可以使用默认轴)
  1. 添加xy轴。

不同的图表

折线图(QLineSeries)

折线图用于将信息表示为由直线连接的一系列数据点。
折线图是通过使用QLineSeries类实现的。

曲线图(QSplineSeries)

样条图是通过使用继承QLineSeries的QSplineSeries类实现的,与创建直线图完全一致,只需要将QLineSeries 变为QSplineSeries 即可。

面积图(QAreaSeries)

面积图将数据表示为由两条线连接的区域
面积图是通过使用QAreaSeries类实现的。默认情况下,x轴作为一个边界,QLineSeries作为另一个边界。但是,你可以同时使用QLineSeries作为边界。

散点图(QScatterSeries)

散点图将数据表示为点的集合
散点图是通过使用QScatterSeries类实现的,与创建直线图完全一致,只需要将QLineSeries 变为QScatterSeries即可。

柱状图(QBarSeries)

条形图以按类别分组的水平或垂直条形表示数据。QBarSet类表示柱状图中的一组柱状QAbstractBarSeries类是所有栏系列类的抽象父类。序列(series)类型决定了数据的呈现方式。
你可以创建如下形式的柱状图表:
QBarSeries类将数据表示为按类别分组的竖条。类似地,QHorizontalBarSeries类将数据表示为水平条。
QStackedBarSeries类将一系列数据表示为垂直堆叠的条,每个类别一个条。相应的水平类是QHorizontalStackedBarSeries
QPercentBarSeries类以每个类别的百分比表示一系列分类数据。相应的水平类是QHorizontalPercentBarSeries。

饼图(QPieSeries)

饼图将数据表示为由饼图切片组成的饼图。饼是使用QPieSeries类实现的,饼片是使用QPieSlice类添加的。
通过指定洞的大小在0.0到1.0之间,可以将饼变成甜甜圈。

线箱图(QBoxPlotSeries)

盒须图将数据表示为四分位数,扩展了显示值可变性的须。箱形图系列中的项目按类别分组,类似于条形图系列中的条形集。对于每个盒须项,指定了下限、下限四分位数、中位数、上限四分位数和上限极值。

蜡烛图(QCandlestickSeries)

烛台图以烛台的形式呈现一系列数据。
烛台图是通过使用QCandlestickSeries和QCandlestickSet类实现的。

极坐标图(QPolarChart)

极坐标图以圆形图形的形式显示数据,其中数据的位置基于图形中心(极点)的角度和距离。
QPolarChart类是QChart类的专门化。它支持直线、样条、区域和散点系列,以及它们支持的所有轴类型。轴既可以用作径向轴,也可以用作角轴。

坐标抽

Qt Charts支持以下轴类型:
  • Value axis(值轴)
  • Category axis(类别轴)
  • Bar category axis(柱状分类轴)
  • Date-time axis(日期-时间轴)
  • Logarithmic value axis(对数值轴)
可以设置轴来显示带有标记、网格线和阴影的线。轴上的值画在标记的位置上。所有轴类型都是QAbstractAxis类的专门化。
所能创建的所有轴的类型:

值轴(QValueAxis)

值轴为图表轴添加实际值。它是使用QValueAxis类实现的。

分类轴(QCategoryAxis)

类别轴是使用QCategoryAxis类实现的。它具有命名范围和可调范围宽度。

条形分类轴(QBarCategoryAxis)

条形分类轴类似于分类轴,但是所有范围的范围宽度是相同的。bar类别轴是使用QBarCategoryAxis类实现的。

日期-时间轴(QDateTimeAxis)

日期-时间轴向图表轴添加日期和时间。它是使用QDateTimeAxis类实现的。

对数值轴(QLogValueAxis)

对数轴将对数刻度添加到图表的轴上。对数刻度是一种基于数量级的非线性刻度,因此轴上的每个刻度标记都是前一个刻度标记乘以一个值。对数轴是使用QLogValueAxis类实现的。

注意

可以为一个图表定义多个轴。坐标轴可以放在图表的上下左右。此外,轴可以是不同类型的。但是,不支持混合会导致不同域的轴类型,例如在同一方向上指定QValueAxis和QLogValueAxis。

图例(Legend)

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

评论
  • Twikoo
  • Valine