splot命令可以通过“set table”创建数据块吗?

时间:2016-02-09 17:54:58

标签: gnuplot

我有一个2D功能,我在sp(f,x)命令后打印出set table生成的多列数据。

gnuplot>f(x,y)=sin(x*y)
> set table "isocurve.dat"
> splot [-pi:pi] [-pi:pi] f(x,y)

表示isocurves的数据块由set table生成的Ascii文件中的一个空行分隔。

因此,数据文件只包含一个块。

问题是:是否可以将isocurves分隔两个空行,以便可以将它们作为数据块进行跟踪?

我发现它很有趣,因为这样可以使用stats命令获得各个isocurves的简单统计信息。举个例子:

set print 'max.dat'
do for [i=0:10]{
stats 'isocurve.dat' u 1:3 index i
print i,STAS_pos_max_y,STATS_max}

作为一种解决方法,可以通过awk管道isocurve.dat文件并获取空行。但我只想问gnuplot是否可以自己做。

1 个答案:

答案 0 :(得分:1)

如果使用plot for ...来模拟splot,则迭代将保存为单独的数据块:

N = 21
set table 'table.dat'
plot for [i=0:(N-1)] f(x, i*pi*(2.0/N) - pi)
unset table

虽然这有效,但这不是我使用gnuplot的任务。