Qt中图表图形绘制类介绍

接上篇介绍QChart 相关的类,本片主要在QChart 载体上进行图表图形绘制使用各种形状的图类。

一.QXYSeries类

QXYSeries类是QLineSeries折线图,QSplineSeries样条曲线图,QScatterSeries散点图的基类;
QXYSeries类的使用都可以参考下面详细介绍的折线图,样条曲线图,散点图等的应用。

二.QLineSeries 折线图类

1.图表属性

setName(); 设置名称
setColor(); 设置颜色
SetPen(); 设置画笔
hide(); 设置显隐
setVisible(); 设置可见
setBrush(); 设置画刷
setOpacity(); 设置透明度

2.数据操作

append(); 或 replace(); 添加数据
setPointsVisible(); 设置数据点的可见性
clear(); 清空图表内的数据
removePoints(); 从某个位置开始删除之后的数据点

3.标签操作

setPointLabelsVisible(); 设置可见性
setPointLabelsColor(); 设置文字颜色
setPointLabelsFont(); 字体设置
setPointLabelsFormat(); 格式设置

三.QBarSeries 柱状图类

1.QBarSet 集合元素

append(); 添加值到数据集的末尾
replace(); 替换数据集中的值
clear(); 清除数据集中所有值
count(); 返回数据集中值的个数
isEmpty(); 检查数据集是否为空
at(); 返回数据集中指定的值

2.QBarSeries 数据系列

append(); 添加QBarSet对象到系列的末尾
replace(); 替换系列中的QBarSet对象
clear(); 清楚所有对象
count(); 返回系列中对象的个数
isEmpty(); 检查系列是否为空
at(); 返回系列中指定索引的QBarSet对象

3.QBarCategoryAxis 条形图横坐标

void append(const QStringList &categories) , 将一组类别添加到轴的末尾
void insert(int index, const QString &category), 在指定索引位置插入一个类别。
void remove(const QString &category), 移除指定的类别。
void clear(); 清除轴中的所有类别。
int count(); 返回轴中类别的数量。
QString categoryAt(int index); 返回轴中指定索引位置的类别。
QStringList categories(); 返回包含轴所有类别的列表。
void setCategories(const QStringList &categories); 设置轴的类别。
void setStartValue(qreal value); 设置轴的起始值。
qreal startValue(); 返回轴的起始值。
void setRange(qreal min, qreal max); 设置轴的范围。
void append(const QVector &points); 将一组点添加到轴的末尾,用于自动设置类别。
void replace(const QVector &points); 提供一个组点替换整个轴,用于自动设置类别

4.QStackedBarSeries 堆叠图

QStackedBarSeries(QObject *parent = nullptr) 构造函数,创建一个 QStackedBarSeries 对象。
void append(QBarSet *set) 将一个 QBarSet 添加到序列中。
void append(QList<QBarSet *> sets) 将一组 QBarSet 添加到序列中。
QList<QBarSet *> barSets() const 返回序列中的所有 QBarSet。
void setLabelsVisible(bool visible) 设置是否显示柱状图的标签。
bool labelsVisible() const 返回柱状图的标签可见性。
void setLabelsFormat(const QString &format) 设置标签的显示格式。
QString labelsFormat() const 返回标签的显示格式。
void setLabelsPosition(QAbstractBarSeries::LabelsPosition position) 设置标签的位置。
QAbstractBarSeries::LabelsPosition labelsPosition() const 返回标签的位置。

5.QPercentBarSeries 百分比图

QPercentBarSeries() 构造函数,创建一个 QPercentBarSeries 对象。
setLabelsVisible(bool) 设置百分比柱状图上的数据标签是否可见。
labelsVisible() 返回百分比柱状图上的数据标签是否可见的状态。
setLabelsPosition(Position) 设置百分比柱状图上的数据标签位置,Position 是一个枚举类型,表示标签的位置,如上方、下方、内部等。
labelsPosition() 返回百分比柱状图上的数据标签位置。
setLabelsFormat(QString) 设置百分比柱状图上的数据标签的格式,使用字符串指定标签的显示格式。
labelsFormat() 返回百分比柱状图上的数据标签的显示格式。
setPercentageVisible(bool) 设置百分比柱状图上的百分比标签是否可见。
percentageVisible() 返回百分比柱状图上的百分比标签是否可见的状态。
setStackingGap(qreal) 设置百分比柱状图中堆叠的百分比柱之间的间隙。
stackingGap() 返回百分比柱状图中堆叠的百分比柱之间的间隙。
append(QBarSet*) 在百分比柱状图中追加一个数据集。
insert(int, QBarSet*) 在百分比柱状图中插入一个数据集,参数为位置索引和 QBarSet 对象。
remove(QBarSet*) 从百分比柱状图中移除指定的数据集。
take(int) 从百分比柱状图中移除并返回指定位置的数据集。
take(QBarSet*) 从百分比柱状图中移除指定的数据集并返回。
count() 返回百分比柱状图中数据集的数量。
barSets() 返回百分比柱状图中所有数据集的列表。
barWidth() 返回百分比柱状图中百分比柱的宽度。
barWidthChanged(qreal) 当百分比柱状图中百分比柱的宽度发生变化时发出的信号,参数为新的宽度值。

四.QPieSerics 饼状图类

1.QPieSlice 单个饼块类

QPieSlice(qreal value, QString label) 构造函数,创建一个带有给定值和标签的 QPieSlice 对象。
setLabel(QString label) 设置饼块的标签文字。
label() 返回饼块的标签文字。
setValue(qreal value) 设置饼块的值。
value() 返回饼块的值。
setExploded(bool exploded) 设置饼块是否为爆炸状态,即是否与饼图分离。
isExploded() 返回饼块是否为爆炸状态。
setPieSeries(QPieSeries *series) 设置饼块所属的 QPieSeries 对象。
pieSeries() 返回饼块所属的 QPieSeries 对象。
setBrush(const QBrush &brush) 设置饼块的画刷,即填充颜色。
brush() 返回饼块的画刷。
setLabelBrush(const QBrush &brush) 设置饼块标签的画刷,即标签的颜色。
labelBrush() 返回饼块标签的画刷。
setPen(const QPen &pen) 设置饼块的画笔,即边框颜色和样式。
pen() 返回饼块的画笔。
setLabelVisible(bool visible) 设置饼块标签是否可见。
isLabelVisible() 返回饼块标签是否可见。
setExplodeDistanceFactor(qreal factor) 设置饼块爆炸时的距离因子,即与饼图分离的距离。
explodeDistanceFactor() 返回饼块爆炸时的距离因子。
setPercentage(qreal percentage) 设置饼块的百分比值。
percentage() 返回饼块的百分比值。
clicked(bool state) 鼠标点击饼块时发出的信号,参数为鼠标点击的状态(按下或释放)。
hovered(bool state) 鼠标悬停在饼块上时发出的信号,参数为悬停状态。
pressed() 鼠标按下饼块时发出的信号。
released() 鼠标释放饼块时发出的信号。

2.QPieSeries 饼状图类

QPieSeries(QObject *parent = nullptr) 构造函数,创建一个 QPieSeries 对象。
append(QPieSlice *slice) 向饼状图序列中追加一个饼块。
insert(int index, QPieSlice *slice) 在指定位置插入一个饼块。
remove(QPieSlice *slice) 从饼状图序列中移除指定的饼块。
clear() 清除饼状图序列中的所有饼块。
slices() 返回饼状图序列中的所有饼块。
count() 返回饼状图序列中的饼块数量。
at(int index) 返回饼状图序列中指定索引位置的饼块。
setVisible(bool visible) 设置饼状图序列的可见性。
isVisible() 返回饼状图序列的可见性。
setHoleSize(double size) 设置饼状图中间空心的大小,范围为 [0.0, 1.0],0.0 表示没有空心,1.0 表示整个饼状图都是空心。
holeSize() 返回饼状图中间空心的大小。
setPieSize(double size) 设置饼状图的大小,范围为 [0.0, 1.0],默认为 1.0。
pieSize() 返回饼状图的大小。
setLabelsVisible(bool visible) 设置饼块的标签是否可见。
labelsVisible() 返回饼块的标签是否可见。
setLabelsPosition(QPieSlice::LabelPosition position) 设置饼块标签的位置。
labelsPosition() 返回饼块标签的位置。
setLabelsPrecision(int precision) 设置饼块标签显示的小数位数。
labelsPrecision() 返回饼块标签显示的小数位数。
clicked(QPieSlice *slice) 点击饼块时发出的信号,参数为被点击的饼块。
hovered(QPieSlice *slice, bool state) 鼠标悬停在饼块上时发出的信号,参数为被悬停的饼块和悬停状态。
pressed(QPieSlice *slice) 鼠标按下饼块时发出的信号,参数为被按下的饼块。
released(QPieSlice *slice) 鼠标释放饼块时发出的信号,参数为被释放的饼块。

五.QScatterCerics 散点图类

1.QSplineSeries 绘制曲线类

QSplineSeries(QObject *parent = nullptr) 构造函数,创建一个 QSplineSeries 对象。
append(QPointF point) 向曲线中追加一个数据点。
append(QList points) 向曲线中追加一组数据点。
replace(int index, QPointF point) 替换指定索引处的数据点。
replace(QList points) 替换曲线中的所有数据点。
remove(int index) 移除指定索引处的数据点。
remove(int index, int count) 移除从指定索引开始的指定数量的数据点。
clear() 清空曲线中的所有数据点。
pointsVector() 返回曲线的数据点。
setUseOpenGL(bool enable) 设置是否使用 OpenGL 进行绘制。
useOpenGL() 返回是否使用 OpenGL 进行绘制。
setPen(const QPen &pen) 设置曲线的画笔,即曲线的颜色和样式。
pen() 返回曲线的画笔。
setBrush(const QBrush &brush) 设置曲线的画刷,即填充颜色。
brush() 返回曲线的画刷。
setPointLabelsVisible(bool visible) 设置是否显示数据点的标签。
isPointLabelsVisible() 返回数据点的标签是否可见。
setPointLabelsFormat(const QString &format) 设置数据点标签的显示格式,支持使用占位符。
pointLabelsFormat() 返回数据点标签的显示格式。
setPointLabelsColor(const QColor &color) 设置数据点标签的颜色。
pointLabelsColor() 返回数据点标签的颜色。
setPointLabelsFont(const QFont &font) 设置数据点标签的字体。
pointLabelsFont() 返回数据点标签的字体。
setPointsVisible(bool visible) 设置是否显示数据点。
arePointsVisible() 返回数据点是否可见。
setPointLabelsClipping(bool clipping) 设置是否裁剪超出绘图区域的数据点标签。
isPointLabelsClipping() 返回数据点标签是否裁剪超出绘图区域。
clicked(QPointF point) 鼠标点击曲线时发出的信号,参数为鼠标点击的数据点坐标。
hovered(QPointF point, bool state) 鼠标悬停在曲线上时发出的信号,参数为悬停状态以及悬停位置的数据点坐标。
pressed(QPointF point) 鼠标按下曲线时发出的信号,参数为鼠标按下的数据点坐标。
released(QPointF point) 鼠标释放曲线时发出的信号,参数为鼠标释放的数据点坐标。
doubleClicked(QPointF point) 鼠标双击曲线时发出的信号,参数为鼠标双击的数据点坐标。

2.QScatterCerics 散点图类

QScatterSeries(QObject *parent = nullptr) 构造函数,创建一个 QScatterSeries 对象。
append(QPointF point) 向散点图中追加一个数据点。
append(QList points) 向散点图中追加一组数据点。
replace(int index, QPointF point) 替换指定索引处的数据点。
replace(QList points) 替换散点图中的所有数据点。
remove(int index) 移除指定索引处的数据点。
remove(int index, int count) 移除从指定索引开始的指定数量的数据点。
clear() 清空散点图中的所有数据点。
pointsVector() 返回散点图的数据点。
setMarkerShape(QScatterSeries::MarkerShape shape) 设置散点的形状,可以是圆形、方形等。
markerShape() 返回散点的形状。
setMarkerSize(qreal size) 设置散点的大小。
markerSize() 返回散点的大小。
setPen(const QPen &pen) 设置散点图的画笔,即散点的边框颜色和样式。
pen() 返回散点图的画笔。
setBrush(const QBrush &brush) 设置散点图的画刷,即散点的填充颜色。
brush() 返回散点图的画刷。
setBorderColor(const QColor &color) 设置散点的边框颜色。
borderColor() 返回散点的边框颜色。
setBackgroundColor(const QColor &color) 设置散点的背景颜色。
backgroundColor() 返回散点的背景颜色。
setBorderColor(const QColor &color) 设置散点的边框颜色。
borderColor() 返回散点的边框颜色。
setBrush(const QBrush &brush) 设置散点的画刷,即填充颜色。
brush() 返回散点的画刷。
setPen(const QPen &pen) 设置散点的画笔,即边框颜色和样式。
pen() 返回散点的画笔。
setUseOpenGL(bool enable) 设置是否使用 OpenGL 进行绘制。
useOpenGL() 返回是否使用 OpenGL 进行绘制。
setMarkerShape(QScatterSeries::MarkerShape shape) 设置散点的形状,可以是圆形、方形等。
markerShape() 返回散点的形状。
setMarkerSize(qreal size) 设置散点的大小。
markerSize() 返回散点的大小。
setMarkerColor(const QColor &color) 设置散点的颜色。
markerColor() 返回散点的颜色。
clicked(QPointF point) 鼠标点击散点时发出的信号,参数为鼠标点击的数据点坐标。
hovered(QPointF point, bool state) 鼠标悬停在散点上时发出的信

六.其他

除过以上常见的图表类,还有QAreaSerics 面积图类和QCategoryAxis 分类轴类,但这两个比较少见,在此不做表述。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/850445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能_机器学习096_PCA主成分分析降维算法_PCA降维原理_介绍和使用_模式识别_EVD特征值分解_SVD奇异值分解---人工智能工作笔记0221

首先我来看PCA降维,可以看到在图像处理中经常用到PCA,经过对数据进行降维可以去除数据噪声,发现数据中的模式,也就是 发现数据的规律. 这里的模式识别就是 机器学习中的一个分支 就是在数据中找规律的意思 我们使用代码看一下 from sklearn.docomposition import PCA from skl…

ecursionError: maximum recursion depth exceeded while calling a Python object

在 Python 中&#xff0c;RecursionError: maximum recursion depth exceeded 错误通常发生在一个函数递归调用自身太多次&#xff0c;超出了 Python 默认的递归深度限制时。Python 默认的递归深度限制是比较低的&#xff0c;以避免无限递归导致的栈溢出。 在你的代码中&#…

考虑风光场景生成的电动汽车并网优化调度【遗传算法】【IEEE33】

目录 主要内容 部分代码 部分结果 下载链接 主要内容 程序主要内容是考虑风光场景生成的电动汽车并网优化调度&#xff0c;采用的方法如下所述&#xff1a; ①采用蒙特卡洛方法&#xff0c;结合copula函数以及fuzzy-kmeans&#xff0c;获取6个典型风光出力场景&…

Linux C语言:输入输出(printf scanf)

一、数据输出 1、C语言I/O操作由函数实现 #include <stdio.h> 2、字符输出函数 格式: int putchar( int c ) 参数: c为字符常量、变量或表达式 功能&#xff1a;把字符c输出到显示器上 返值&#xff1a;putchar函数的返回值是参数的ASCLL码值&#xff1b; #inclu…

深入理解交叉熵损失CrossEntropyLoss - 乘积符号在似然函数中的应用

深入理解交叉熵损失CrossEntropyLoss - 乘积符号在似然函数中的应用 flyfish 乘积符号prod&#xff0c;通常写作 ∏ \prod ∏&#xff0c;它类似于求和符号 ∑ \sum ∑&#xff0c;但它表示的是连续乘积。我们来看一下这个符号的具体用法和例子。 乘积符号 ∏ \prod ∏ …

1.奖牌的数量

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/447 题目描述 小爱获得了 𝑎a 枚金牌,…

领导者在沟通中最容易犯的错误

本文讨论了领导者在沟通过程中如何避免成为传声筒&#xff0c;通过筛选、处理和总结信息&#xff0c;在向上、向下沟通时保持相关性和真实性&#xff0c;提高沟通效率和效果。原文: The Dumbest Mistake Leaders Make in Communication 中层管理者作为高层领导、下属团队和其他…

Float浮动

Float浮动 CSS中float属性会使元素浮动&#xff0c;使元素向左或向右移动&#xff0c;直到它的外边缘碰到包含框或另一个浮动框的边框为止。 实例 元素的水平方向浮动&#xff0c;意味着元素只能左右移动而不能上下移动。使用float意味着使用块布局&#xff0c;其会在displa…

基于springboot的酒店管理系统源码数据库

时代的发展带来了巨大的生活改变&#xff0c;很多事务从传统手工管理转变为自动管理。自动管理是利用科技的发展开发的新型管理系统&#xff0c;这类管理系统可以帮助人完成基本的繁琐的反复工作。酒店是出门的必需品&#xff0c;无论出差还是旅游都需要酒店的服务。由于在旺季…

Vue3中的常见组件通信之`$refs`、`$parent`

Vue3中的常见组件通信之$refs、$parent 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-mod…

智能合约中代理漏洞

合约代理漏洞 代理模式在智能合约开发中非常常见&#xff0c;尤其是在升级和模块化设计中。代理合约&#xff08;Proxy Contract&#xff09;通常用于分离逻辑实现与合约的外部接口&#xff0c;允许在不改变接口的情况下升级或替换底层实现。然而&#xff0c;如果代理合约的初…

Vue数据动态代理机制的实现

Object.defineProperty() &#xff08;1&#xff09;这个方法是ES5新增的 &#xff08;2&#xff09;这个方法的作用是&#xff1a;给对象新增属性&#xff0c;或者设置对象原有的属性 &#xff08;3&#xff09;用法&#xff1a;Object.defineProperty(给哪个对象新增属性,‘…

深入解析:MySQL连接超时问题排查与优化策略

引言 ​ 在现代企业应用中&#xff0c;数据库的稳定性和响应速度是保证业务连续性的关键。MySQL作为广泛使用的数据库系统&#xff0c;其连接超时问题可能成为性能瓶颈&#xff0c;影响用户体验和业务效率。本文将深入探讨MySQL连接超时的原因、影响以及优化策略。 超时配置详…

【虚拟现实】一、AR与VR的基本原理

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 增强现实&#xff08;AR&#xff09;和虚拟现实&#xff08;VR&#xff09;技术已经从科幻小说走入现实&#xf…

UR机器人通信汇总

文章目录 一、概述二、UR机器人通信2.1UR通信协议2.2 UR通信端口 三、UR机器人通信端口类型3.1 Modbus TCP端口&#xff08;502端口&#xff09;3.2 Dashboard端口&#xff08;29999端口&#xff09;3.3 上位机编程端口&#xff08;30001/30002/30003端口&#xff09;3.3.1 URS…

linux本地搭建dns

不需要图形化界面 使用的是dnsmasq&#xff0c;配置简单 1.安装 deb系列linux apt-get install dnsmasqrhat系列linux yum install dnsmasq2.编辑配置文件 vi /etc/dnsmasq.conf设置主dns服务器&#xff0c;比如现有公用的的114.114.114.114 8.8.8.8这类的 server8.8.8.8…

MyBatis 延迟加载,一级缓存,二级缓存设置

MyBatis不仅提供了一级缓存和二级缓存机制&#xff0c;还支持延迟加载&#xff08;Lazy Loading&#xff09;&#xff0c;以进一步优化性能。 1. 延迟加载&#xff08;Lazy Loading&#xff09; 延迟加载是在需要时才加载数据&#xff0c;而不是在查询时立即加载所有相关数据。…

字节开源Hyper-SD模型,超越SDXL-Lightning,单步生成SOTA级图像

前言 近年来&#xff0c;扩散模型&#xff08;Diffusion Model&#xff0c;DM&#xff09;在图像生成领域取得了显著进展&#xff0c;展现出前所未有的图像质量和多样性。然而&#xff0c;扩散模型的训练和推理过程通常需要多个步骤&#xff0c;这限制了其在实际应用中的效率。…

注册小程序

每个小程序都需要在 app.js 中调用 App 方法注册小程序实例&#xff0c;绑定生命周期回调函数、错误监听和页面不存在监听函数等。 详细的参数含义和使用请参考 App 参考文档 。 整个小程序只有一个 App 实例&#xff0c;是全部页面共享的。开发者可以通过 getApp 方法获取到全…

172.二叉树:左叶子之和(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr, right(nullptr) {}* Tree…