在 gnuplot 中跳过每两行

Skipping every two rows in gnuplot

我有一个格式为

的数据文件
x1 x2 x3 x4


y1 y2 y3 y4


z1 z2 z3 z4

即每行数据后空两行。如何在 gnuplot 中使用 every 命令在绘制数据时忽略这些行? (否则由于数据行之间的这些空格,gnuplot 似乎不会绘制任何东西)

 plot 'data.dat' every XXX u 1:2 ....

一个简单的问题,我认为每个命令都是 gnuplot 命令,但我发现它很混乱,所以语法不太正确。提前致谢。

首先,如果数据中有一个或多个空行,gnuplot 将断开绘制的线条。因此,您将无法绘制数据 with lines,因为没有任何连接。但是,使用 with points 您会看到数据点。显然,smooth 也“不喜欢”(双)空行。所以,它归结为:我怎样才能删除空行?一种可能的方法是将数据绘制成 table(此处:$Data2),然后使用选项 smooth bezier.

绘制此 table

代码:

### remove emtpy lines for smooth
reset session

$Data <<EOD
1   2   3


2   5   1


3   5   2


4   4   4


5   8   3


6   9   1
EOD

set table $Data2
    plot $Data u 1:2:3 w table
unset table

set key top left

plot $Data w p pt 7 ti "Data with double empty lines", \
     $Data2 u 1:2 smooth bezier w l lc "red" ti "smooth bezier"
### end of code

补充:(在评论中澄清后)

代码:(如果你有文件'data.dat'而不是内联数据$Data

### remove emtpy lines for smooth
reset session

FILE = 'data.dat'

set table $Data2
    plot FILE u 1:2:3 w table
unset table

set key top left

plot FILE w p pt 7 ti "Data with double empty lines", \
     $Data2 u 1:2 smooth bezier w l lc "red" ti "smooth bezier"
### end of code

结果: