有没有办法用gnuplot在自适应网格上可视化场?
我是gnuplot的初学者。最近我尝试在自适应网格上可视化压力场 首先得到了节点坐标、单元中心坐标和单元中心压力值有没有办法用gnuplot在自适应网格上可视化场?,gnuplot,field,mesh,Gnuplot,Field,Mesh,我是gnuplot的初学者。最近我尝试在自适应网格上可视化压力场 首先得到了节点坐标、单元中心坐标和单元中心压力值 我发现有些事情很难处理。也就是说x和y方向的坐标不规则,这让我在准备源数据的格式时感到很困难。对于规则的和相等的矩形,我可以做一些类似于x-y-z格式的事情。但是在自适应网格中有成功的例子吗?我知道您有一些x、y、z数据,这些数据不在常规网格中(当然,您的自适应网格)。 我不完全确定你是不是在找这个,但是 gnuplot可以为您网格化数据,即在常规网格内对数据进行内部/外推,然
我发现有些事情很难处理。也就是说x和y方向的坐标不规则,这让我在准备源数据的格式时感到很困难。对于规则的和相等的矩形,我可以做一些类似于x-y-z格式的事情。但是在自适应网格中有成功的例子吗?我知道您有一些x、y、z数据,这些数据不在常规网格中(当然,您的自适应网格)。 我不完全确定你是不是在找这个,但是 gnuplot可以为您网格化数据,即在常规网格内对数据进行内部/外推,然后绘制数据。 选中帮助dgrid3d 代码:
### grid data
reset session
# create some test data
set print $Data
do for [i=1:200] {
x = rand(0)*100-50
y = rand(0)*100-50
z = sin(x/15)*sin(y/15)
print sprintf("%g %g %g",x,y,z)
}
set print
set view equal xyz
set view map
set multiplot layout 1,2
set title "Original data with no regular grid"
unset dgrid3d
splot $Data u 1:2:3 w p pt 7 lc palette notitle
set title "Gridded data"
set dgrid3d 100,100 qnorm 2
splot $Data u 1:2:3 w pm3d
unset multiplot
### end of code
结果:
### grid data
reset session
# create some test data
set print $Data
do for [i=1:200] {
x = rand(0)*100-50
y = rand(0)*100-50
z = sin(x/15)*sin(y/15)
print sprintf("%g %g %g",x,y,z)
}
set print
set view equal xyz
set view map
set multiplot layout 1,2
set title "Original data with no regular grid"
unset dgrid3d
splot $Data u 1:2:3 w p pt 7 lc palette notitle
set title "Gridded data"
set dgrid3d 100,100 qnorm 2
splot $Data u 1:2:3 w pm3d
unset multiplot
### end of code
如果有每个单元格的大小,可以使用“BoxyError”打印样式。让xdelta和ydelta沿x轴和y轴为单元大小的一半 脚本:
$datablock <<EOD
# x y xdelta ydelta pressure
1 1 1 1 0
3 1 1 1 1
1 3 1 1 1
3 3 1 1 3
2 6 2 2 4
6 2 2 2 4
6 6 2 2 5
4 12 4 4 6
12 4 4 4 6
12 12 4 4 7
EOD
set xrange [-2:18]
set yrange [-2:18]
set palette maxcolors 14
set style fill solid 1 border lc black
plot $datablock using 1:2:3:4:5 with boxxyerror fc palette title "mesh", \
$datablock using 1:2 with points pt 7 lc rgb "gray30" title "point"
pause -1
$datablock非常感谢您!我能理解你说的话。实际上,我做了一些插值的试验。实际上,我的工作是使用自适应网格捕捉界面。因此,界面附近的网格非常密集。我有将近100000个细胞,我有将近100000个细胞。幸运的是,我成功地在每个方向上用大约2000个点进行了插值。然而,我发现界面附近的信息仍然不太好,因为我使用常规网格代替较小的自适应网格。我正在寻找一种方法来保留我的源数据并将其可视化。非常感谢您的回复!2000x2000=400万像素不足以容纳10万个单元?也许你可以分享图片来说明还有哪些地方需要改进?