2

有没有办法在 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. 因此,对于 time 的值,1.9我需要考虑 to 之间1.4的所有值2.4

4

1 回答 1

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'
于 2013-10-25T16:37:22.910 回答