在 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
结果:
我有一个格式为
的数据文件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
.
代码:
### 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
结果: