有没有办法在gnuplot中绘制移动标准差?
我有一个大文件,我正在绘制我的常规信号。现在我需要根据x的帧计算/绘制y的标准偏差。
有什么想法吗?
由于
添加说明:
这就是我的数据设置方式:
我使用此命令绘图:
plot "Data.csv" using 1:3 title 'Sample' ls 1
数据文件看起来像这样
#Value1;Value2;Time
0.1;0.2;1
0.11;0.2;1.5
0.12;0.3;1.9
0.11;0.2;2.1
0.3;0.21;2.2
0.2;0.31;2.9
时间序列不规则。要计算标准开发,我需要考虑一个时间依赖的固定帧。在这个例子中,我将使用1
的时间范围。因此,对于1.9
时的值,我需要在1.4
到2.4
之间考虑所有值。
答案 0 :(得分:1)
我同意@Christoph认为python让这更容易。以下是如何在python中计算运行stdev的示例:
#!/usr/bin/env python2.7
import argparse
parser = argparse.ArgumentParser(description='Computes a moving standard deviation for a data file')
parser.add_argument('--number', '-n', help='Window size (number of points to either side)', type=int)
parser.add_argument('dataFile', help='Name of data file', type=str)
args = parser.parse_args()
n = args.number
# I hope you have numpy, it makes things much easier
import numpy as np
# assuming two-column time/datum format
data = np.loadtxt(args.dataFile)
for ii in range(n,len(data)-n):
print data[ii,0], np.std(data[ii-n:ii+n+1,1])
现在您可以从gnuplot:
调用数据文件上的脚本plot '<python boxcarStdev.py -n 5 mydata.dat'