Gnuplot表面图与极坐标中同一图上的热图结合 [英] Gnuplot Surface plot combined with heatmap on the same plot in polar coordinates

查看:34
本文介绍了Gnuplot表面图与极坐标中同一图上的热图结合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想绘制3D表面图和具有相同功能的热图图(来自 Gnuplot食谱).

I'd like to plot 3D surface plot combined with heatmap plot of the same function (from file data) at the bottom (like in the chapter "Combining surfaces with images" in Gnuplot Cookbook).

想要的图片看起来像.

The wanted picture looks like this and this.

使用是否可以通过Gnuplot在极坐标中绘制两个图形(轮廓图和3D)?

Is it possible to draw two graphs (contour and 3D) in the polar coordinates in one plot via Gnuplot?

输出为空,因此代码中有错误:

Output is nothing, so there is an error in the code:

reset
set terminal pngcairo size 800,800 enhanced font 'Verdana,20'
set output '3d-polar_AbsPsiSquared.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
unset key
set multiplot

stats '_FullWV.dat' using ($3*$3+$4*$4)
max(a,b) = (a>b) ? a : b
round2(x) = x - floor(x) < 0.5 ? floor(x) : ceil(x)
round(x, n) = round2(x*10**n)*10.0**(-n)

Z_MAX = max(-STATS_min, STATS_max)
Z_MAX = round(Z_MAX,1)

set parametric
set grid xtics ytics
set angles degree

#set zrange[-1,1]
#set cbrange [-1:1]
set autoscale fix
#set autoscale xfix
#set autoscale yfix
set autoscale zfix
#set autoscale
set cbrange [-Z_MAX : Z_MAX]

set palette model RGB defined ( 0"#6495ED", 1"blue", 2"#00008B",3"white",\
     4"green",5"yellow",6"red")
#splot '_FullWV.dat' u ($2*cos($1)):($2*sin($1)):($3*$3+$4*$4)
set size ratio -1
set hidden front
set xyplane at -1
splot '_FullWV.dat' u (abs(($3*$3+$4*$4))<1e-3 ? NaN : $2*cos($1)):($2*sin($1)):($3*$3+$4*$4) with pm3d at b, '_FullWV.dat' u (abs(($3*$3+$4*$4))<1e-3 ? NaN : $2*cos($1)):($2*sin($1)):($3*$3+$4*$4) with pm3d

unset multiplot

推荐答案

似乎,解决方案是pm3d的depthorder选项,因此正确的脚本是:

Seems, the solution is depthorder option of pm3d, so the right script is:

reset
set terminal postscript eps size 5,6 enhanced color font 'Helvetica,20' linewidth 2
set output "3d.eps"

set tics scale 1.25

set xlabel '{/Helvetica-Oblique x, a.u.}'
set ylabel '{/Helvetica-Oblique y, a.u.}'
set zlabel '{/Helvetica-Oblique E, a.u.}'

set pm3d depthorder
unset key
set multiplot
unset colorbox

stats '_FullWV.dat' using ($3*$3+$4*$4)
max(a,b) = (a>b) ? a : b
round2(x) = x - floor(x) < 0.5 ? floor(x) : ceil(x)
round(x, n) = round2(x*10**n)*10.0**(-n)

Z_MAX = max(-STATS_min, STATS_max)
Z_MAX = round(Z_MAX,1)

set parametric
set grid xtics ytics ztics
set mxtics 2
set mytics 2
set tics out
set decimalsign ","

set format x "%.1f"
set format y "%.1f"
set format z "%.0f"

set angles degree
set view 61,33
set ztics floor(Z_MAX/3)


set autoscale fix
set autoscale zfix
set cbrange [0 : Z_MAX]



set palette model RGB defined ( 0"#168de2", 1"#0201db", 2"#00008B", 3"#00dcf5",\
         4"#09df67",5"yellow",6"red")
set size ratio 1
set hidden3d front
set xyplane at -10
splot '_FullWV.dat' u (abs(($3*$3+$4*$4))<1e-3 ? NaN : $2*cos($1)):($2*sin($1)):($3*$3+$4*$4) with pm3d at b, '_FullWV.dat' u (abs(($3*$3+$4*$4))<1e-3 ? NaN : $2*cos($1)):($2*sin($1)):($3*$3+$4*$4) with pm3d

unset multiplot

这篇关于Gnuplot表面图与极坐标中同一图上的热图结合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆