首页 文章

多个文件的相关系数

提问于
浏览
1

我尝试从多个数据文件的散点图 . 我想在图中得到线性拟合,我想将相关系数写入图中 . 我想对这些数据文件中的某些行进行此操作 . 这是我的线性拟合:

fit [0:1] [0:1000] f(x) '< for i in data_1.csv data_2 data_3.csv \
data_4.csv data_5.csv; do cat "$i"; echo; done' every ::121::361 using 5:27 via a,b

这有效....现在以相同的方式获得相关系数会很棒......

stats '< for i in data_1.csv data_2 data_3.csv \
data_4.csv data_5.csv; do cat "$i"; echo; done' every ::121::361 using 5:27 "Correlation C."

这不起作用我收到此错误:

format must have 1-7 conversions of type double (%lf)

一些更新:

这是我的 Health 输出

Final set of parameters            Asymptotic Standard Error
=======================            ==========================
a               = -410.518         +/- 32.5         (7.918%)
b               = 746.018          +/- 5.448        (0.7302%)

correlation matrix of the fit parameters:
                a      b      
a               1.000 
b              -0.695  1.000

我不确定输出是否适用于我的bash脚本以适应多个文件的曲线 . 坡度为-410.518似乎很奇怪 .

更新的问题:这个拟合在gnuplot中有多个文件吗?实际的Plot看起来很好,但为什么输出中有如此奇怪的值?

1 回答

  • 1

    这只是一个语法错误,从 stats 命令中删除 "Correlation C." ,或使用 name 为生成的变量提供除 STATS_ 之外的前缀:

    stats '...' name 'CorrelationC_'
    show variables CorrelationC_
    

    而且,您可以使用以下方法简化您的通话: awk 合并所有文件(如果数据文件的最后一行没有新行,这也适用于 cat data_*.csv ):

    cmd = '< awk "//" data_*.csv'
    stats cmd every ::121::361 using 5:27
    ...
    plot cmd ...
    

相关问题