gpt4 book ai didi

gnuplot - 避免对周期性数据进行不连续插值

转载 作者:行者123 更新时间:2023-12-02 15:18:41 24 4
gpt4 key购买 nike

我有一个复值数据文件,我想在平面 pm3d 图中绘制与绝对值分开的相位信息。我在 -pipi 之间定义了一个循环调色板,如下所示

set palette model HSV
set palette define (-pi 0 1 1, pi 1 1 1)
set palette maxcolors 1000

即我将 HSV 色轮边缘的两个“红色”分配给相位域 (±pi) 的端点。然后我开始像这样绘制数据:

set pm3d map
set cbrange [-pi:pi]
splot 'datafile' w pm3d

结果如下所示: Phase plot with apparent discontinuity at +/- pi

正如您所看到的,当绘图算法对两个相反的值进行插值时,相位值从 -pi 跳到 pi 的地方会出现伪影,从而产生接近 0(青色)的颜色。有没有办法避免 gnuplot 中的这个工件?当然,我总是可以以一种避免不连续性的方式操作数据,并在标准 [-pi:pi] 域之外分配相位,但我不愿意。

<小时/>

编辑:您可以使用函数而不是数据文件来重现与上述类似的图:

I = {0,1}
set xrange [0:3]
set yrange [0:3]
set isosample 100
splot arg(exp(I*x*y)) w pm3d

最佳答案

我坚持在我的评论中,只要有可能,使用和图像来绘制彩色图通常是一个更好的主意,特别是因为使用矢量图像终端时,的(非)压缩>pm3d 可能会导致图像尺寸非常大。但是,您的情况非常特殊,因为您需要插值。我探索了 set pm3dcorns2color 的不同选项,它决定了相邻网格站点之间的插值是如何完成的。有些选项可能会解决您的问题,请自行判断:

set palette model HSV
set palette define (-pi 0 1 1, pi 1 1 1)
set palette maxcolors 1000
set pm3d map
set cbrange [-pi:pi]
I = {0,1}
set xrange [0:3]
set yrange [0:3]
set isosample 100

unset tics
unset colorbox

set term pngcairo size 640,4096; set output "out.png"
set multiplot layout 9,1

do for [mode in "mean geomean median min max c1 c2 c3 c4"] {

eval "set pm3d corners2color ".mode

set title mode
splot arg(exp(I*x*y)) w pm3d not

}

enter image description here

关于gnuplot - 避免对周期性数据进行不连续插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36062895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com