我有一个2D CFD代码,它给出了网格上每个点的x和y流速。我目前正在使用gnuplot中的矢量字段可视化数据。我的目标是看看火山喷发的羽流延伸到多远,所以如果它能够防止向量在场地中出现,如果它们低于一定幅度,它会更加清洁。有没有人知道如何去做?我目前的gnuplot脚本如下。我也可以根据需要修改输入文件。
reset
set nokey
set term png
set xrange [0:5.1]
set yrange [0:10.1]
do for [i=0:10] {
set title 'Eruption simulation: Timestep '.i
set output 'path/FlowVel'.sprintf('%04.0f',i).'.png'
plot 'path/Flow'.sprintf('%04.0f',i).'.dat' using 1:2:3:4 with vec
}
答案 0 :(得分:0)
我想你想要一种过滤,gnuplot并不真正拥有,但可以通过以下技巧实现(取自gnuplot中的“帮助使用示例”):
One trick is to use the ternary `?:` operator to filter data:
plot 'file' using 1:($3>10 ? $2 : 1/0)
which plots the datum in column two against that in column one provided
the datum in column three exceeds ten. `1/0` is undefined; `gnuplot`
quietly ignores undefined points, so unsuitable points are suppressed.
Or you can use the pre-defined variable NaN to achieve the same result.
所以我想你会想要这样的事情
plot "data.dat" u 1:2:($3**2+$4**2>mag_sq?$3:NaN):($3**2+$4**2>mag_sq?$4:NaN) w vector
其中mag_sq是您所需幅度的平方。