我有几个具有类似数据的文件,需要使用gnuplot进行绘制。
例如,我用这样的东西来绘制3个文件的第1列和第5列:
plot "file1.csv" using 1:5 title 'test 1' with lp,
"file2.csv" using 1:5 title 'test 2' with lp,
"file3.csv" using 1:5 title 'test 3' with lp
但是,我不知道如何绘制3个文件中数据的函数。例如,我想在前面的图中包括每个点的3列的介质(这将是第I个数据点的函数f(x1,x2,x3)=(x1(i)+x2(i)+x3(i))/3
)。有可能吗?
这是一个常见的问题,答案是:不直接来自gnuplot。但是,您可以调用一个外部工具来为您计算。以下是其他几个答案和例子(你可以在这个网站上搜索"gnuplot多个文件"来了解更多…):
示例1
示例2
另一种可能性是使用Pyxplot绘图包http://pyxplot.org.uk,其语法与gnuplot相似,但已清理。Pyxplot有一个interpole命令(请参阅http://pyxplot.org.uk/current/doc/html/ex-interpolation.html)用于产生例如通过线性插值或样条拟合对来自文件的数据进行插值的函数。
然后你可以做,例如:
interpolate linear file1() "file1.csv" using 1:5
interpolate linear file2() "file2.csv" using 1:5
interpolate linear file3() "file3.csv" using 1:5
plot file1(x) + file2(x) + file3(x)
我想这正是你想要的。