我有两个文件file1.dat
和file2.dat
,每个文件都包含一个维度相同的矩阵(分别是F1和F2)(即它们都是m x n
矩阵)。我知道如何使用gnuplot绘制其中任何一个(例如splot "file1.dat" matrix
),但是如何指示gnuplot绘制F1-F2?
答案 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
mat1
和mat2
是您要绘制的矩阵文件。 awk脚本来自here。