首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免周期性数据的不连续插值

避免周期性数据的不连续插值
EN

Stack Overflow用户
提问于 2016-03-17 14:04:43
回答 1查看 884关注 0票数 4

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

代码语言:javascript
复制
set palette model HSV
set palette define (-pi 0 1 1, pi 1 1 1)
set palette maxcolors 1000

也就是说,我将HSV色轮边缘上的两个‘红色’分配到相位域(±pi)的终点。然后,我开始绘制这样的数据:

代码语言:javascript
复制
set pm3d map
set cbrange [-pi:pi]
splot 'datafile' w pm3d

结果如下:

如您所见,在位相值从-pi跳转到pi的地方有一个工件,因为绘图算法插值两个相反的值,产生接近0(青色)的颜色。有什么方法可以避免在gnuplot中出现这种神器吗?当然,我总是可以以一种避免不连续性的方式操作数据,并在标准[-pi:pi]域之外分配阶段,但我宁愿不这样做。

编辑:--您可以使用一个函数而不是一个数据文件来再现一个类似于上面的图:

代码语言:javascript
复制
I = {0,1}
set xrange [0:3]
set yrange [0:3]
set isosample 100
splot arg(exp(I*x*y)) w pm3d
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-18 13:41:07

在我的评论中,我坚持认为,如果可能的话,使用with image绘制彩色地图是一个更好的主意,特别是因为对于矢量图像终端,pm3d的(非)压缩可能导致非常大的图像大小。但是,您有一个非常特殊的情况,因为您需要插值。我探索了set pm3d corners2color的不同选项,这决定了如何在相邻的网格站点之间进行插值。有些选择可能会让你摆脱这个问题,你自己来判断:

代码语言:javascript
复制
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

}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36062895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档