6.1 创建一个图表对象
6.2 设置图表的大小
6.3 设置图表的对齐位置
6.4 设置图表的区域(LV_CHART_TYPE_AREA是线显示的区域,LV_CHART_TYPE_LINE表示单纯的线)
6.5 设置图表的透明度
6.6 设置数据系列的线宽或点半径(线的粗细)
6.7 设置最大或最小的Y值
6.8 设置每条数据线所具有的数据点个数,如果不设置的话,则默认值是 10
6.9 设置水平和垂直分割线
6.10 设置 y 轴的数值范围,[0,100]也是默认值
6.11 设置 y 轴的主刻度线长度和次刻度线长度
6.12 设置 y 轴的主刻度标题和每个主刻度标题间的刻度数
6.13 设置 x 轴的主刻度线长度和次刻度线长度
6.14 设置 x 轴的主刻度标题和每个主刻度标题间的刻度数
6.15 分配数据系列并将其添加到图表中
6.16 将所有数据右移,并在数据行上设置最右边的数据
6.17 创建一个线程,用于刷新图表

定义一个线程参数结构体

typedef struct {lv_obj_t * chart;lv_chart_series_t * ser1;lv_chart_series_t * ser2;
}TChartObject;static TChartObject chartObject;

实现图表刷新线程

__declspec (thread)  int  nCount = 0; //线程局部变量
DWORD  WINAPI chart_thread_proc(LPVOID  * wparm)
{TChartObject *pTChartObject = (TChartObject*)wparm;int iOffset = 0;while (1){Sleep(500);for (int i = 0; i < 10; i++){if (i % 2 == 0)lv_chart_set_next(pTChartObject->chart, pTChartObject->ser1, 0 + iOffset);elselv_chart_set_next(pTChartObject->chart, pTChartObject->ser1, 20 + iOffset);}for (int i = 0; i < 10; i++){if (i % 2 == 0)lv_chart_set_next(pTChartObject->chart, pTChartObject->ser2, 0 + iOffset);elselv_chart_set_next(pTChartObject->chart, pTChartObject->ser2, 40 + iOffset);}iOffset++;if (iOffset > 10)iOffset = 0;lv_chart_refresh(pTChartObject->chart);}return  0;
}

实现图表配置

 //6. 图表//6.1 创建一个图表对象lv_obj_t * chart;chart = lv_chart_create(lv_scr_act(), NULL);//6.2 设置图表的大小lv_obj_set_size(chart, 200, 150);//6.3 设置图表的对齐位置lv_obj_align(chart, NULL, LV_ALIGN_IN_RIGHT_MID, -20, -30);//6.4 设置图表的区域(LV_CHART_TYPE_AREA是线显示的区域,LV_CHART_TYPE_LINE表示单纯的线)lv_chart_set_type(chart, LV_CHART_TYPE_LINE);   /*Show lines and points too*///6.5 设置图表的透明度lv_chart_set_series_opa(chart, LV_OPA_70);       /*Opacity of the data series*///6.6 设置数据系列的线宽或点半径(线的粗细)lv_chart_set_series_width(chart, 2);            /*Line width and point radious*///6.7 设置最大或最小的Y值lv_chart_set_range(chart, 0, 50);//6.9 设置每条数据线所具有的数据点个数,如果不设置的话,则默认值是 10lv_chart_set_point_count(chart, 10);//6.10 设置水平和垂直分割线lv_chart_set_div_line_count(chart, 4, 4);//6.11 设置 y 轴的数值范围,[0,100]也是默认值lv_chart_set_range(chart, 0, 50);//6.12 设置 y 轴的主刻度线长度和次刻度线长度lv_chart_set_y_tick_length(chart, 10, 5);//6.13 设置 y 轴的主刻度标题和每个主刻度标题间的刻度数lv_chart_set_y_tick_texts(chart, "5\n4\n3\n2\n1\n0", 5, LV_CHART_AXIS_DRAW_LAST_TICK);//6.14 设置 x 轴的主刻度线长度和次刻度线长度lv_chart_set_x_tick_length(chart, 10, 5);//6.15 设置 x 轴的主刻度标题和每个主刻度标题间的刻度数lv_chart_set_x_tick_texts(chart, "0\n0.2\n0.4\n0.6\n0.8\n1.0", 5, LV_CHART_AXIS_DRAW_LAST_TICK);lv_chart_set_margin(chart, 40);//设置刻度区域的高度//6.16 分配数据系列并将其添加到图表中lv_chart_series_t * ser1 = lv_chart_add_series(chart, LV_COLOR_RED);lv_chart_series_t * ser2 = lv_chart_add_series(chart, LV_COLOR_BLUE);//6.17 将所有数据右移,并在数据行上设置最右边的数据for (int i = 0; i < 10; i++){if ((i%2)==0)lv_chart_set_next(chart, ser1, 10);elselv_chart_set_next(chart, ser1, 30);if ((i % 2) == 0)lv_chart_set_next(chart, ser2, 0);elselv_chart_set_next(chart, ser2, 30);}//6.18 如果图表的数据行已更改,请刷新图表lv_chart_refresh(chart); //6.19 创建一个线程,用于刷新图表chartObject.chart = chart;chartObject.ser1 = ser1;chartObject.ser2 = ser2;HANDLE   handle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)chart_thread_proc, (void*)&chartObject, 0, NULL); //函数类型转换

效果演示

lvgl chart相关推荐

  1. LVGL 8.2.0 Stacked area chart

    数据定型定义 /* A struct is used to keep track of the series list because later we need to draw to the ser ...

  2. LVGL 8.2.0 CHART显示ECG数据

    ECG数据表格 /* Source: https://github.com/ankur219/ECG-Arrhythmia-classification/blob/642230149583adfae1 ...

  3. LVGL 8.2.0之Faded area line chart with custom division lines

    绘制事件处理函数 static lv_obj_t* chart1; static lv_chart_series_t* ser1; static lv_chart_series_t* ser2; st ...

  4. lvgl lv_conf.h文件详解

    学习的是正点原子的例程,跟着自己敲了些中文注释,特此分享 /*** @file lv_conf.h**//** COPY THIS FILE AS `lv_conf.h` NEXT TO the `l ...

  5. 【LVGL学习笔记】(三)控件使用

    LVGL全程LittleVGL,是一个轻量化的,开源的,用于嵌入式GUI设计的图形库.并且配合LVGL模拟器,可以在电脑对界面进行编辑显示,测试通过后再移植进嵌入式设备中,实现高效的项目开发. LVG ...

  6. UEFI 开发学习 - LVGL在EDK2上的移植

    前言 我还在实习,在公司内接触了BIOS.所以小白一枚. 废话不多说,以下内容仅供参考. 我是看到一位大神的博客,爱影博客 - UEFI开发学习8 – LVGL GUI库的移植 大家可以自己去看看,我 ...

  7. 【RTT】移植:LVGL 8.0.2

      开发板:潘多拉开发板   系统版本:v4.0.3   LVGL版本:8.0.2   注:这篇文章就简单记录下编译成功,跑了一个 demo 的过程,至于是否完全移植成功,不确定哈,毕竟 LVGL 还 ...

  8. LVGL 源码分析大全

    LVGL 源码分析大全目录 1.概述 2.已完成源码分析文章列表 2.1.硬件抽像层(hal) 2.2.核心框架(core/misc) 2.3.定制功能 2.4.内部接口 2.5.案例讲解 2.6.其 ...

  9. RGB Color Codes Chart

    RGB Color Codes Chart RGB颜色空间 RGB颜色空间或RGB颜色系统,从红色.绿色和蓝色的组合中构造所有颜色. 红色.绿色和蓝色各使用8位,它们的整数值从0到255.这使得256 ...

  10. ASP.NET画图控件 Chart Control 免费控件

    .NET3.5中中推出了图表控件,可以同时支持Web和WinForm两种方式,由于平时很少使用,一直没有玩玩,闲来无事,简单研究了下,感觉功能真的很强大,基本上可以满足各种图表的应用,感觉这么好用的东 ...

最新文章

  1. 百度发布智能电视伴侣,并公布短视频计划
  2. mysql 二进制日志详解_Mysql二进制日志详解
  3. matlab处理中文路径
  4. FPGA---多按键消抖检测
  5. glog学习(二):glog主要接口和类分析
  6. LightOJ 1336. Sigma Function
  7. sqlserver的文件导入到mysql_导入50G文件到mysql,然后再倒入sqlserver
  8. 模N计数器-计数+使能信号
  9. 未来新型计算机可分为哪三种,未来有可能引起计算机技术革命有哪几种呢
  10. 伊利诺伊大学香槟分校计算机工程,伊利诺伊大学香槟分校计算机工程排名第8(2020年TFE美国排名)...
  11. c语言hook函数,另类iOS上的C函数hook
  12. Spring Boot-入门
  13. 怎样在ps中制作对话气泡?一招教你轻松解决
  14. Pandas快速合并多张excel表格
  15. 很喜欢这句话:将军赶路,不追小兔
  16. python绘制等边三角形的代码_python绘制等边三角形
  17. bootstrap 查询条件布局
  18. 随机场(Random field)
  19. python可视化 Task04 文字图例尽眉目
  20. 国产源表之纳米水伏发电材料研究

热门文章

  1. 卷积神经网络如何提取特征
  2. 细胞穿膜肽( CPPs)偶联肽核酸Tat-modified-PNA|C-myc tag-PNA|SSBP(I)-PNA|Tp-10-PNA|PTD-4-PNA
  3. wex5 php开发,WeX5开发移动APP(SQLite本地数据优化)
  4. 支持扫描的单usb口打印服务器,TL-PS110U 单USB口打印服务器
  5. 解决MySQL登录ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor)问题
  6. 计算机自检后反复重启 主引导,电脑重装系统时,按错了意外重启然后就一直这样怎么办啊!...
  7. [爬虫] Python监测L优惠券发放网站并通过邮件通知我
  8. matlab韦伯分布,科学网—威布尔分布 Weibull Distribution 资源网页搜集 - 杨正瓴的博文...
  9. tibco rv java实例_Tibco RV - fault tolerance
  10. 二进制方式部署k8s集群1.21版本-域名形式