有没有办法在 gnuplot 中绘制移动标准偏差?
我有一个大文件,我正在从中绘制我的常规信号。现在我需要根据 x 的帧计算/绘制 y 的标准偏差。
有什么想法吗?
谢谢
添加说明:
我的数据就是这样设置的:
我使用这个命令绘图: 使用 1:3 标题“Sample”ls 1 绘制“Data.csv”
数据文件看起来像这样
#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 之间的所有值。
请您参考如下方法:
我同意@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'
