有没有办法用gnuplot在自适应网格上可视化场?

有没有办法用gnuplot在自适应网格上可视化场?,gnuplot,field,mesh,Gnuplot,Field,Mesh,我是gnuplot的初学者。最近我尝试在自适应网格上可视化压力场 首先得到了节点坐标、单元中心坐标和单元中心压力值 我发现有些事情很难处理。也就是说x和y方向的坐标不规则,这让我在准备源数据的格式时感到很困难。对于规则的和相等的矩形,我可以做一些类似于x-y-z格式的事情。但是在自适应网格中有成功的例子吗?我知道您有一些x、y、z数据,这些数据不在常规网格中(当然,您的自适应网格)。 我不完全确定你是不是在找这个,但是 gnuplot可以为您网格化数据,即在常规网格内对数据进行内部/外推,然

我是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万个单元?也许你可以分享图片来说明还有哪些地方需要改进?