当前位置: 首页 > news >正文

合宙Air724UG LuatOS-Air LVGL API控件--图表 (Chart)

图表 (Chart)
在这里插入图片描述

一幅图胜过一千个字,通过图表展示出的数据内容能让用户更快速有效的了解数据特征。

代码示例
– 创建图表
chart = lvgl.chart_create(lvgl.scr_act(), nil)
lvgl.obj_set_size(chart, 200, 150)
lvgl.obj_align(chart, nil, lvgl.ALIGN_CENTER, 0, 0)

– 设置 Chart 的显示模式 (折线图)
lvgl.chart_set_type(chart, lvgl.CHART_TYPE_LINE)

ser1 = lvgl.chart_add_series(chart, lvgl.color_hex(0xFF0000))
ser2 = lvgl.chart_add_series(chart, lvgl.color_hex(0x008000))

– 添加点
for i=1, 15 do
lvgl.chart_set_next(chart, ser1, math.random(10, 90))
end

for i=15, 1, -1 do
lvgl.chart_set_next(chart, ser2, math.random(10, 90))
end
– 刷新图表
lvgl.chart_refresh(chart)
创建
通过 lvgl.chart_create 函数可以创建一个图表控件。

chart = lvgl.chart_create(lvgl.scr_act(), nil)
设置类型
创建的图表默认类型是折线图:
在这里插入图片描述

通过函数 lvgl.chart_set_type 可以将图表设置为条形图

lvgl.chart_set_type(chart, lvgl.CHART_TYPE_COLUMN)
在这里插入图片描述

图表还有第三种类型 lvgl.CHART_TYPE_NONE, 此类型会隐藏图表所有绘制的数据线。

添加数据线
添加数据线有两步操作,首先需要创建一条数据线,第一个参数是图表控件的指针,第二个参数是数据线的颜色。创建完成之后可以通过函数 lvgl.chart_set_next 向数据线添加点。

ser1 = lvgl.chart_add_series(chart, lvgl.color_hex(0x008000))
for i=1, 10 do
i = i - 5
lvgl.chart_set_next(chart, ser1, ii4)
end
在这里插入图片描述

通过 lvgl.chart_init_points 可以将所有数据点设置成一个值

lvgl.chart_init_points(chart, ser1, 50)
在这里插入图片描述

可以通过点 id 单独设置某个点的数值。需要注意的是,这里的 id 是从 0 开始的:

lvgl.chart_set_point_id(chart, ser1, 0, 5)
在这里插入图片描述

通过 lvgl.chart_clear_series 可以清除绘制的数据点。

设置图表
设置图图表上的数据点数 lvgl.chart_set_point_count, 默认点数是 10 个,可以将点数改为 20。

lvgl.chart_set_point_count(chart, 20)
在这里插入图片描述

Y 轴可设置最小值和最大值, 我们可以只显示 50-100 这部分的数值。

lvgl.chart_set_y_range(chart, lvgl.CHART_AXIS_PRIMARY_Y, 50, 100)
在这里插入图片描述

图表也可以设置水平和垂直分割线的数量。

lvgl.chart_set_div_line_count(chart, 8, 8)
在这里插入图片描述

API
lvgl.chart_create
调用 lvgl.chart_create(par, copy)
功能 创建图表对象
返回 指向创建的图表对象的指针
参数
par 指向对象的指针, 它将是新图表的父对象
copy 指向图表对象的指针, 如果不为 nil, 则将从其复制新对象
lvgl.chart_add_series
调用 lvgl.chart_add_series(chart, color)
功能 为图表添加数据线
返回 指向已分配数据线的指针
参数
chart 指向图表对象的指针
color 数据线的颜色
lvgl.chart_clear_series
调用 lvgl.chart_clear_series(chart, series)
功能 清除数据线上的点
参数
chart 指向图表对象的指针
series 指向要清除的数据线的指针
lvgl.chart_set_div_line_count
调用 lvgl.chart_set_div_line_count(chart, hdiv, vdiv)
功能 设置图表水平和垂直分割线的数量
参数
chart 指向图表对象的指针
hdiv 水平分割线个数
vdiv 垂直分割线个数
lvgl.chart_set_y_range
调用 lvgl.chart_set_y_range(chart, axis, ymin, ymax)
功能 设置图表Y轴的最大值和最小值
参数
chart 指向图表对象的指针
axis lvgl.CHART_AXIS_PRIMARY_Y 或 lvgl.CHART_AXIS_SECONDARY_Y
ymin Y轴最小值
ymax Y轴最大值
lvgl.chart_set_type
调用 lvgl.chart_set_type(chart, type)
功能 设置图表的类型
参数
chart 指向图表对象的指针
type 图表的类型
lvgl.CHART_TYPE_NONE – 隐藏图表
lvgl.CHART_TYPE_LINE – 绘制点线图表
lvgl.CHART_TYPE_COLUMN – 绘制条形图表
lvgl.chart_set_point_count
调用 lvgl.chart_set_point_count(chart, point_cnt)
功能 设置图表上数据线上的点数
参数
chart 指向图表对象的指针
point_cnt 数据线上的点数
lvgl.chart_init_points
调用 lvgl.chart_init_points(chart, ser, y)
功能 用一个值初始化所有数据点
参数
chart 指向图表对象的指针
ser 指向图表上数据线的指针
y 所有点的新值
lvgl.chart_set_next
调用 lvgl.chart_set_next(chart, ser, y)
功能 向右移动所有数据并在数据线上设置最右边的数据
参数
chart 指向图表对象的指针
ser 指向图表上数据线的指针
y 下个点的数值
lvgl.chart_set_update_mode
调用 lvgl.chart_set_update_mode(chart, update_mode)
功能 设置图表对象的更新模式
参数
chart 指向图表对象的指针
update 更新的模式
lvgl.chart_set_x_start_point
调用 lvgl.chart_set_x_start_point(chart, ser, id)
功能 设置数据数组中 x 轴起点的索引
参数
chart 指向图表对象的指针
ser 指向图表上的数据线的指针
id 数据数组中 x 点的索引
lvgl.chart_set_point_id
调用 lvgl.chart_set_point_id(chart, ser, value, id)
功能 直接基于索引在图表系列中设置单个点值
参数
chart 指向图表对象的指针
ser 指向图表上的数据线的指针
value 需要设置点的数值
id 数组中 x 点的索引
lvgl.chart_set_series_axis
调用 lvgl.chart_set_series_axis(chart, ser, axis)
功能 设置系列的 Y 轴
参数
chart 指向图表对象的指针
ser 指向系列的指针
axis lvgl.CHART_AXIS_PRIMARY_Y 或 lvgl.CHART_AXIS_SECONDARY_Y
lvgl.chart_get_type
调用 lvgl.chart_get_type(chart)
功能 获取图表类型
返回 图表类型
参数
chart 指向图表对象的指针
lvgl.chart_get_point_id
调用 lvgl.chart_get_point_id(chart, ser, id)
功能 直接基于索引获取图表中的单个点值
返回 索引 ID 处点的值
参数
chart 指向图表对象的指针
ser 指向图表上的数据线的指针
id 数组中 x 点的索引
lvgl.chart_get_series_axis
调用 lvgl.chart_get_series_axis(chart, ser)
功能 获取数据线的 Y 轴
返回 lvgl.CHART_AXIS_PRIMARY_Y 或 lvgl.CHART_AXIS_SECONDARY_Y
参数
chart 指向图表对象的指针
ser 指向数据线的指针
lvgl.chart_refresh
调用 lvgl.chart_refresh(chart)
功能 如果数据线已更改, 则刷新图表
参数
chart 指向图表对象的指针

相关文章:

合宙Air724UG LuatOS-Air LVGL API控件--图表 (Chart)

图表 (Chart) 一幅图胜过一千个字,通过图表展示出的数据内容能让用户更快速有效的了解数据特征。 代码示例 – 创建图表 chart lvgl.chart_create(lvgl.scr_act(), nil) lvgl.obj_set_size(chart, 200, 150) lvgl.obj_align(chart, nil, lvgl.ALIGN_CENTER, 0, …...

Three.js之模型对象、材质

参考资料 三维向量Vector3与模型位置…克隆.clone()和复制.copy() 知识点 注:基于Three.jsv0.155.0 三维向量Vector3与模型位置欧拉Euler与角度属性.rotation模型材质颜色(Color对象)模型材质父类Material:透明、面属性模型材质和几何体属性克隆.clo…...

uniapp启动微信小程序开发者工具报错Enable IDE Service (y/N) 

下载安装好微信小程序开发者路径 配置好启动路径后 报错[微信小程序开发者工具] ? Enable IDE Service (y/N) [27D[27C 解决办法 因为微信开发者工具的服务端口号没有打开...

Gitee注册和使用

个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录 1.Gitee 1.1Gitee是什么 1.2Gitee的注册以及远程仓库的创建…...

【Flutter】下载安装Flutter并使用学习dart语言

前言 安装flutter, 并使用flutter内置的dartSDK学习使用dart语言。 编辑器: Android Studio fluuter 版本 : flutter_windows_3.13.1 内置dartSDK : 3.1.0 dart路径路径: flutter安装路径\bin\cache\dart-sdk 安装Flutter 下载安装包 flutter下载地址…...

HTTP返回状态值详解整理

一、总体 1xx:信息响应类,表示接收到请求并且继续处理 2xx:处理成功响应类,表示动作被成功接收、理解和接受 3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理 4xx:客户端错误,客户请求包含语法错误或者是不能…...

python web 开发与 Node.js + Express 创建web服务器入门

目录 1. Node.js Express 框架简介 2 Node.js Express 和 Python 创建web服务器的对比 3 使用 Node.js Express 创建web服务器示例 3.1 Node.js Express 下载安装 3.2 使用Node.js Express 创建 web服务器流程 1. Node.js Express 框架简介 Node.js Express 是一种…...

OpenCV(三):Mat类数据的读取

目录 1.Mat类矩阵的常用属性 2.Mat元素的读取 1.at方法读取Mat矩阵元素 at (int row,int col) 2.矩阵元素地址定位方式访问元素 3.Android jni demo 1.Mat类矩阵的常用属性 下面是一些Mat类的常用属性: rows: 返回Mat对象的行数。 cols: 返回Mat对象的列数。 …...

区块链BaaS篇

区块链BaaS(Blockchain as a Service)区块链即服务;感觉5年前做的BaaS和现在做的BaaS没啥区别,换了批人重复造轮子,BaaS做的越来越乱,也越来越中心化。BaaS是方便区块链调用的工具,工具是方便使…...

C++|观察者模式

观察者模式: 定义对象间的一种一对多(变化)的依赖关系,以便当一个 对象(Subject)的状态发生改变时,所有依赖于它的对象都 得到通知并自动更新 动机: 在软件构建过程中,我们需要为某些对象建立…...

【java 入侵 C# 之路】1-入门

感谢 https://www.cnblogs.com/mww-NOTCOPY/p/12213373.html 百度百科 jvm对应clr java se runtime对应 .net framework, jdk对应 .net framework sdk, java对应C# .NET 是开发者平台,它包含开发环境、技术框架、社区论坛、服务支持等&…...

【git】从一个git仓库迁移到另外一个git仓库

在远端服务器创建一个新的仓库 用界面创建&#xff0c;当然也可以用命令创建 拉去源仓库 git clone --bare git192.168.10.10:java/common.gitgit clone --bare <旧仓库地址>拉去成功以后会出现 进入到文件夹内部 出现下面信息&#xff1a; 推送到新的远端仓库 git …...

控制goroutine 的并发执行数量

goroutine的数量上限是1048575吗&#xff1f; 正常项目&#xff0c;协程数量超过十万就需要引起重视。如果有上百万goroutine&#xff0c;一般是有问题的。 但并不是说协程数量的上限是100多w 1048575的来自类似如下的demo代码: package mainimport ( "fmt" "ma…...

深入解析即时通讯App开发中的关键技术

即时通讯App开发在现代社交和通信领域中扮演着重要的角色。随着移动设备的普及和网络的高速发展&#xff0c;人们对即时通讯工具的需求不断增加。本篇文章将深入探讨即时通讯App开发中的关键技术&#xff0c;帮助读者了解该领域的最新动态和技术趋势。 基础架构和通信协议 现…...

ClickHouse进阶(三):ClickHouse 索引

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术&#xff0c;IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…...

四、MySQL(表操作)如何添加字段?修改表?删除字段?修改表名?删除表?格式化某张表?

1、添加字段 &#xff08;1&#xff09;基础语法&#xff1a; alter table 表名 add 字段名 类型名(长度) [comment注释] [约束]; &#xff08;2&#xff09;示例&#xff1a;添加nickname这个字段 2、修改表 修改表中某个字段的【数据类型】/【数据类型&字段名】 &…...

docker启动paddlespeech服务,并使用接口调用

一、检查docker容器是否启动 1.输入命令 systemctl status docker 启动 systemctl start docker 守护进程重启 sudo systemctl daemon-reload 重启docker服务 systemctl restart docker 重启docker服务 sudo service docker restart 关闭docker service docker…...

如何训练ChatGPT以生成音乐和创意艺术作品?

训练ChatGPT生成音乐和创意艺术作品是一个令人兴奋且具有挑战性的任务。这种技术&#xff0c;也被称为生成式艺术&#xff0c;涉及将人工智能&#xff08;AI&#xff09;模型与创意艺术的融合。在本文中&#xff0c;我将探讨如何训练ChatGPT以生成音乐和创意艺术作品的过程&…...

北约报告:2023-2043,下一代量子技术的发展与挑战

“当今的新技术正在以令人眼花缭乱的速度发展&#xff0c;我们所有人都可以在负责任且合乎道德的方式开发和部署新技术方面发挥作用。” ——这是副秘书长Mircea Geoană在2023年3月22日、在布鲁塞尔发布《北约科学技术组织2023-2043年趋势报告》时传达的信息。 Geoană先生强调…...

arm版Linux下安装es集群

背景&#xff1a;由于生产上网络没通&#xff0c;没办法&#xff0c;只能自己安装一个es集群的测试环境了&#xff0c;我的电脑是Mac M2&#xff0c;安装的Linux是centos7&#xff0c;也是arm版的。 第一步&#xff1a;查看自己Linux系统的版本 命令&#xff1a;uname -a 例如…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...