怎么能将一组动态数据画成labview波形数据图

LabVIEW中的时标、波形以及动态数据_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
LabVIEW中的时标、波形以及动态数据
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩2页未读,
定制HR最喜欢的简历
你可能喜欢在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
静态画图用 matplotlib.plot即可。
如果是动态用实时数据画图:
每分钟更新一个数据,即在标准图上显示出来,应该用哪个函数或者怎样编写?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
matplotlib 也可以画动态图的,比如
import numpy as np
import matplotlib.pyplot as plt
plt.axis([0, 100, 0, 1])
for i in range(100):
y = np.random.random()
plt.scatter(i, y)
plt.pause(0.1)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
其实不是用什么画的问题,而是怎么画的问题
要么传数据在客户端画,要么服务器端画+客户端定时刷新(client pull)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
那怎样做?
我想每分钟更新的数据在同一张图上画,而不是没更新一次,重新画一次。
所以怎样做呢?
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。查看: 12135|回复: 13
SerialChart串口数据实时生成图形 串口波形描绘_使用说明翻译
在做PID调试,还有卡尔曼滤波融合的时候,如果有一个能把数据实时传回电脑进行分析,并且生成图形的软件,会对调试过程起到事半功倍的效果。
软件的SVN地址是http://code.google.com/p/serialchart/
配置方法介绍地址是http://code.google.com/p/serialchart/wiki/ConfigurationFileSyntax
222710llfr6xq8llxrm6xz.png (83.81 KB, 下载次数: 136)
21:15 上传
nmmygvymvmm1.png (326.96 KB, 下载次数: 118)
21:15 上传
软件下载:
(5.4 MB, 下载次数: 100)
21:06 上传
点击文件名下载附件
下载积分: 黑币 -5
下面介绍下这个软件的使用:
哦 附张前几天的测试图吧
SerialChart通过一个文本来进行配置。通常的格式如下:
[section1]
param1 = value
param2 = value
[section2]
param1 = value
param2 = value
Setup 部分
每个配置文件由[_setup_]部分开始,这里你能设置全局参数比如:
port=COM3& &
baudrate=57600
width=1000
height=201
background_color = white
grid_h_origin = 100
grid_h_step = 10
grid_h_color = #EEE
grid_h_origin_color = #CCC
grid_v_origin = 0
grid_v_step = 10
grid_v_color = #EEE
grid_v_origin_color = transparent
下面是在[_setup_]部分能够使用的参数:
这就是软件进行串口通讯的接口啦,比如COM1,COM2.。。
波特率,目前只支持以下几种波特率:
110,300,600,00,,.
请注意目前的版本不支持流量控制的参数设置,默认设置为“无”,停
止位默认为1,采用最常用的设置
width,height
chart区域的象素宽度和高度
background_color
chart的背景颜色
关于颜色的一些提醒 请注意在.SCC文件中(也就是此软件的配置文件)颜色可以用16进制来表示(如 #FFF,#FFFFFF)
或者用一些已命名的颜色(白色,蓝色,品红,粉红,灰色)
更多颜色请参考
请注意特殊的
颜色“透明”代表“没有颜色”。如果你不想让一些元素被绘制出来你可以使用它
grid_h_origin, grid_v_origin
水平方向和竖直方向都有一条原始的轴线,一般和普通的格点线(每条曲线都是由一个个像素组成的,所以叫格点线)颜色不同这两个参数确定了轴线在图表中距离顶点、左侧边界的位移,单位为像素
grid_h_origin_color, grid_v_origin_color
原始轴线的颜色
grid_h_step, grid_v_step
这两个参数确定了每次画线的长度(我也搞不懂这句话。。)
grid_h_color, grid_v_color
普通格点线的颜色
Default and Field Sections
(默认设置和区域设置)SerialChart能识别CSV(逗号分隔数据)的数据包(将来可能会支持更多的格式)。每一行传送一份数据包,每一份数据包中的不同数据用逗号来分隔。下面的例子是SerialChart能识别的格式:
100,0.50,0.70
101,0.30,0.50
102,0.25,0.35
在配置文件中,下面的部分为每份数据包中的不同数据设定了参数比如:
[_default_]
color=gray
color=blue
通过[_default_]你可以对所有区域进行一个默认设置。这些参数对所有的数据区都有效除非在[Field]区域中他们被相同的名字覆盖在上面的例子中,[Field2]和[Field3]将继承[_default_]区的默认设置
min=-1,max=1,但[Field1]中的参数把值改为了min=0 and max=255
在你设置了默认设置后你应该为数据包中每个区域进行新的设置。设置顺序应根据他们在数据包中的先后而设置[field]部分的名字可以随意命名但不能和[_setup_],[_default_]相同,也不能以'_'开头和结尾,比如可以命名为[distance],[time],但不能命名为[_setup],[_time_]下面的参数是[default]和[field]区能识别的参数min,max这两个值是对应曲线在图中的上下界。换句话说,如果你设定min=-1,max=1,那数据“1”将会被描绘在图中的顶端,数据“-1”将被描绘在图中的底端,而“0”将会描绘在图的正中间。数据会从[min,max]映射到图中的[0,height],height就是曲线图的高度,在开始的[_setup_]中可以设置(这有点像arduino中的map()函数)
设置数据所对应曲线的颜色。如果你不想让某个数据被绘制出来可以设置为transparent(透明)
可将曲线变成一条虚线,如,当dash=3,软件会将3个数据绘制出来,再停止绘制3个数据,再绘制3个数据,如此反复。。
翻译完毕,加入一些个人使用心得
1、串口只能同时被一个程序使用,当你要更新程序时,要点
SerialChart中的stop
2、刚下完程序打开SerialChart可能没反应,按一下复位再等个几秒应
该就好了,bootloader的启动速度,你懂得。。。
3、[field]的名字千万不能相同,否则有些曲线是绘制不出来的
发个我测试超声波的例子吧
Serial Chart代码:
[_setup_]
port=COM3& &
baudrate=9600
width=10000
height=500
background_color = white
grid_h_origin = 0
grid_h_step = 1
grid_h_color = #EEE
grid_h_origin_color = #CCC
grid_v_origin = -100
grid_v_step = 0
grid_v_color = #EEE
grid_v_origin_color=#CCC
[_default_]
min=0
max=500
[pulsetime]
min=0
max=40000
color=bisque
[pulsetime1]
min=0
max=40000
color=gray
[distance1]
color=pink
min=0
max=400
[distance2]
color=gold
min=0
max=400
[distance]
color=red
min=0
max=400复制代码
arduino代码:
& & void setup()
& & {
& && &pinMode(BeePin,OUTPUT);
& && &pinMode(UMT,OUTPUT);
& && &pinMode(UMR,INPUT);
& && &Serial.begin(9600);
& && &Serial.println(&begin&);
& & }
& & unsigned long Detect1()
& & {
& && &//一坨
& && &return 10000;
& & }
& & unsigned long Detect2()
& & {
& && &//两坨
& && &return 20000;
& & }
& & void loop()
& & {
& && &distance1=Detect1();
& && &distance2=Detect2();
& && &Serial.print(distance1,DEC);
& && &Serial.print(&,&);
& && &Serial.print(distance2,DEC);
& && &Serial.print(&,&);*/
& && & delay(100);
& & }复制代码
arduino代码省略了很多。。。写的太烂了。。 大体是这样的
好了,希望这个软件能帮上大家的忙
问:请教个问题,我用串口发送数据的时候发现,Serial.print好像强制以ascii形式发送的,比如说101,其实发送的是字符串“101”的ascii码49、48、49,这样处理数据的话好像效率特别低,有没有什么比较好的办法直接传输数值的?
你可以给他加上格式
具体可以参考一下他的reference
关于Serial_Print
他的原文是这样的:
Serial.print(78, BIN) gives &1001110&//输出二进制
Serial.print(78, OCT) gives &116&//输出8进制
Serial.print(78, DEC) gives &78&//输出10进制
Serial.print(78, HEX) gives &4E&//输出16进制
Serial.println(1.23456, 0) gives &1&//输出浮点,后面的数字代表小数位数
Serial.println(1.23456, 2) gives &1.23&//同上
Serial.println(1.23456, 4) gives &1.2346&//同上
不知道你有没有试过,这样发送的其实还是ascii值
恩,我仔细看了一下他的reference,好像arduino会自动把所有类型转为ASCII码
Numbers are printed using an ASCII character for each digit. Floats are similarly printed as ASCII digits, defaulting to two decimal places. Bytes are sent as a single character. Characters and strings are sent as is.
我现在也想不到什么好办法
可以提高波特率吧,在一定范围内
还有,避免使用float,或者压缩一下数据,呵呵
这个可以讨论一下,但是目前的通信速率已经够我用了
下载下来看看。
这翻译沃几夫雷啊
使用起来设置数据流格式很啰嗦但也有必要
不知道arduino程序中发送数据是否需要在中断中进行?否则采样间隔不固定,这个波形还有意义么?
谢谢,正需要!
谢谢,我做pid整定需要。
软件事自己做的吗
帮顶,厉害了楼主
下载下来看看;很好!!找好久;總算有類似的軟件
下载下来看看;很好!!找好久;總算有類似的軟件
好厉害啊,学习学习
Powered by我现在有一组EXCEL表格的数据,用什么软件可以画成波形图啊,EXCEL自带的功能太差了_百度知道
我现在有一组EXCEL表格的数据,用什么软件可以画成波形图啊,EXCEL自带的功能太差了
画出的图形可以自动调节,可以知道图形的最大值和清晰的具体趋势Matlab太麻烦了。。。求一个不需要写代码的直接可以画的...
画出的图形可以自动调节,可以知道图形的最大值和清晰的具体趋势Matlab太麻烦了。。。求一个不需要写代码的直接可以画的
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
三界摆渡人知道合伙人
三界摆渡人
采纳数:79
获赞数:324
Excel 可以的,可能是你没有优化好EXcel图表。或者尝试水晶易表 这款软件。
adam_life知道合伙人
采纳数:22
获赞数:16
图标不行吗?用函数X,y值确定单元格底色,从而做出的图形,不知道能不能用。哈哈我做过SIN.COS,你用的话,联系
zgjsdthxb知道合伙人
用office2010这个不错!
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。iOS上动态绘制曲线
近期需要完成一个功能,就是要在屏幕上动态地完成绘制一个曲线。这个曲线可以用来完成描述数据在一定时间内的变化等。大概就是下面这个效果。
这个效果要如何来完成呢?需要用到这三个类
UIBezierPath
CAShapeLayer
和 CABasicAnimation 。其中UIBezierPath用来绘制相应地曲线路径,CAShapeLayer用来为Path提供展示的位置,并且将CABasicAnimation所创建的动画加入到Path之上。
vcD4KPHA+ICAgytfPyM7Sw8e9q87Sw8fL+c+jzfu1xHBhdGi0tL2os/bAtKO6PC9wPgo8cD4gICA8cHJlIGNsYXNzPQ=="brush:">UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(0.0,20.0)];
[path addLineToPoint:CGPointMake(120.0, 500.0)];
[path addLineToPoint:CGPointMake(220, 0)];
[path addLineToPoint:CGPointMake(310, 40)];
[path addLineToPoint:CGPointMake(SCREEN_WIDTH, 110)];
然后我们再为CAShapeLayer创建自己的属性,并且将我们的path赋值给它。如果没有这个赋值的话,这个layer就不能为我们画出这个效果了,并且也是一个不完整的layer.
CAShapeLayer *pathLayer = [CAShapeLayer layer];
pathLayer.frame = self.view.
pathLayer.path = path.CGP
pathLayer.strokeColor = [[UIColor redColor] CGColor];
pathLayer.fillColor =
pathLayer.lineWidth = 2.0f;
pathLayer.lineJoin = kCALineJoinB
[self.view.layer addSublayer:pathLayer];
最后,我们将动画赋值给我们的layer.我们的动画效果中,可以改变其中的一些参数来控制它的绘画效果。
CABasicAnimation *pathAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
pathAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
pathAnimation.duration = 2.0;
pathAnimation.fromValue = [NSNumber numberWithFloat:0.0f];
pathAnimation.toValue = [NSNumber numberWithFloat:1.0f];
[pathLayer addAnimation:pathAnimation forKey:@"strokeEnd"];
现在我们运行这些代码,就可以获得前面图片中的效果了~

我要回帖

更多关于 labview波形数据 的文章

 

随机推荐