读《我和Labview》4图形化显示数据
Graph选板上的很多控件被拖到前面板上时,还会在 VI 的程序框图上添加一些代码。这些代码是真正用来处理不同类型的数据的,它们把不同类型的数据转换为图形控件可以显示的方式,再使用图形控件把数据绘制出来
4.1波形图表和波形图
曲线是一组随时间变化改的数值数据,曲线常常也被称作波形。Labview中最常见的曲线格式是在一个直角坐标系中用X轴表示时间,Y轴表示数据
4.1.1图表与图的区别
波形图(Waveform)和强度图(Intensity),都有对应的图表(Chart)和图(Graph),两者功能类似。
1.Chart和Graph的内存底层区别
- 波形图表和波形图控件可以接受多种不同数据类型
- 图表控件默认为DBL实数数值型(当接入数组数据流时也可为实数数组型),自带一块缓存,历史数据被保存在缓存中,当图表接收到新数据的时,它不会把原来的图形清除,而是在原图形基础上再把新数据添加上
- 图控件默认为DBL实数数组型,没有缓存,每次接收到新数据,就会把旧图清除,只显示新的数据
2.Chart和Graph的实际应用区别
适合与否是要求符合人对数据变化的同步观察需求和历史数据
- 图表适合数据低速变化场景:
如某程序每秒读取并显示一次锅炉的温度数据,数据采集频率为1Hz,使用波形图表控件。不但能够显示当前的数据,还能记录历史数据,从而能够直观地观察到温度的变化趋势(想要看数据实时变化,使用图表Chart,且要把控件放在循环内)- 图适合数据高速变化场景:
程序在 0.01 秒内采集了 1000 个被测物体的震动信号数据,即便可以在 0.01 秒内逐个画出 1000 个点,人眼也无法看到绘图的过程。这种情况更适合在采集完全部 1000 个数据后,使用波形图控件一次绘制出全部数据
图表控件的初始化
图表控件在循环结构内部时,实时逐点绘制曲线,当再次运行VI,会发现波形图表上的旧数据并没有清除,而是在后面继续添加新数据。如果希望每次程序运行时,都是重新开始,需要通过波形图表的"历史"属性节点,清空历史数据,之后再添加数据
当波形图表接受数值数组数据时,其作用跟波形图的行为等效,但具备了历史数据功能,所以波形图表的适用性更强
4.1.2显示多条波形图表
一维数组表示一条曲线,二维数组表示两条曲线,但图表和图两者有差别,这跟两者的实际应用有区别有关:
1.显示曲线的逻辑不同:
- Chart波形图表控件每次绘制一个时间点所有曲线的数据,然后再绘制下一个时间点的数据
- Graph波形图每次绘制一条曲线,然后再绘制另一条曲线
2.接受同一个二维数组,会导致一个是另一个的转置:
- Chart波形图表每一列代表一条曲线,每一行代表一个时刻的数据
- Graph波形图每一行代表一条曲线,每一列代表一个时刻的数据
另一种波形控件常用的数据类型是簇数组(Array of Cluster),与上面的规则类似:
- 波形图表控件接受的簇数组数据中,每个簇代表一个时刻的数据。
- 波形图控件接受的簇数组数据中,每个簇代表一条曲线;
波形图表控件鼠标右键菜单->可以选择 “分格模式(Stack Plots)” /"层叠模式(Overlay Plots)"
当想要让两条幅值相差比较大的曲线层叠显示时,可以使用不同的纵坐标刻度:在波形图坐标轴的标尺上点击鼠标右键,选择 "复制标尺",可以为波形图添加一条额外的标尺。每个标尺的刻度可以是不同的,可以直接双击刻度值来修改标尺的刻度。在波形图的属性对话框中或图例的右键菜单中可以选择每个曲线采用哪一个标尺。采用不同的标尺,可以使波形图中每条曲线的显示都达到最佳效果:
4.2波形数据类型
4.3XY图形控件(XY Graph)
波形图控件处理的数据的重要特征之一是时间信号是有序间隔的,对于这样的数据,通常只需要用一个一维数组,表示每一个时间点上的Y轴的数据即可。如果还需要具体的时间数据,也不需要把每个时间点的数据保存下来,只需要一个初始时间值,和一个间隔值即可。
当所处理的数据的X轴不是有序的,或者不是等间隔的时候需要用到XY图形控件(XY Graph)来显示,数据通常是两组存在映射关系的数组
我们通常会用 XY 图形数据来展现两组数据之间的关系:在测控领域,常常用它来展示一组采集数据中两个通道的数据之间的关系;在数据统计或人工智能等领域,常常用它来展示一个数据集中,某个特征量的分布,或者两个特征之间的关系等
4.3.1展示两个信号通道之间的关系
相位相差为 90 度的两个正弦波数据分别作为 X 和 Y 轴的数据输入 XY 图形控件
利用xy数组簇的形式,实现在XY图上画圆
参考下面篇博客,对XY GRaph控件的使用:
XY图的使用——CSDN
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具