移动标准偏差Gnuplot

时间:2013-10-24 20:47:48

标签: python statistics gnuplot standard-deviation

有没有办法在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.42.4之间考虑所有值。

1 个答案:

答案 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'