Gnuplot:绘制两个矩阵之间的差异

时间:2012-04-10 15:00:52

标签: gnuplot

我有两个文件file1.datfile2.dat,每个文件都包含一个维度相同的矩阵(分别是F1和F2)(即它们都是m x n矩阵)。我知道如何使用gnuplot绘制其中任何一个(例如splot "file1.dat" matrix),但是如何指示gnuplot绘制F1-F2?

2 个答案:

答案 0 :(得分:1)

不幸的是,(据我所知),没有办法使用gnuplot来绘制来自多个文件的信息。解决方案是编写一个简单的脚本(用您最喜欢的语言),将两个文件作为输入并将差异写为输出......然后您可以这样做:

splot "<myscript file1.dat file2.dat" matrix ...

我确信通过足够的哄骗,使用set table和shell魔法,我可以想出一个hack来做你想做的事情(让gnuplot输出多个数据文件,发出shell命令将数据文件粘贴在一起。 ..),但最后,编写自己的脚本将是一个更清洁的解决方案。

答案 1 :(得分:1)

这是一个在gnuplot中使用一点awk的工作示例。

set terminal postscript enhanced colour
set output 'matrixdiff.eps'

unset key 
splot "<awk 'NR==FNR{for(i=1;i<=NF;++i)a[FNR,i]=$i;next}{for(i=1;i<=NF;++i)$i=a[FNR,i]-$i;print}' mat1 mat2" matrix

mat1mat2是您要绘制的矩阵文件。 awk脚本来自here