Gnuplot - 如何缩放xyrange以不考虑热图中的小z

时间:2016-11-18 10:52:24

标签: gnuplot

我有一个数据文件_FullWV.dat,如果在想要的区域z<之外,我希望Gnuplot自动缩放xyrange。 10 ^( - 8),有什么办法可以吗?

图表为here

使用过的script如下:

reset
set terminal pngcairo size 800,800
set output '3d-polar.png'
set lmargin at screen 0.05
set rmargin at screen 0.85
set bmargin at screen 0.1
set tmargin at screen 0.9

set pm3d map
unset key
set multiplot

stats '_FullWV.dat' using 3
max(a,b) = (a>b) ? a : b

Z_MAX = max(-STATS_min, STATS_max)

set parametric
set grid xtics ytics

set angles degree
set autoscale xfix
set autoscale yfix
#set zrange [-Z_MAX : Z_MAX]
set cbrange [-Z_MAX : Z_MAX]

set palette model RGB defined ( 0"black", 1"white", 2"grey")
splot '_FullWV.dat' u ($2*cos($1)):($2*sin($1)):3
unset multiplot

1 个答案:

答案 0 :(得分:2)

代码

set size ratio -1
splot '_FullWV.dat' u (abs($3)<1e-5 ? NaN : $2*cos($1)):($2*sin($1)):3
1e-8太小了,它几乎没有从原来的范围内切割。

解释

abs($3)<1e-5 ? NaN : $2*cos($1)

如果z(第3列)介于-1e-5和1e-5之间,请保留x undefined(非数字)。如果未定义x,则即使定义了y和z,也不会显示任何点。

如果z超出此范围,请将x定义为$2*cos($1)

请注意,对于pm3d,要显示的点至少需要2个连续值。这意味着自动缩放将考虑1个单独的值,但不会显示。

set size ratio -1

表示x刻度上的一个单位将与y刻度上的一个单位一样大:否则圆圈可能会显示为椭圆。