Skip to main content
 首页 » 编程设计

python之移动标准偏差 Gnuplot

2025年05月04日10Renyi-Fan

有没有办法在 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'