Gnuplot 3D热力图pm3d模式最高温度值对应颜色匹配错误求助
Gnuplot pm3d模式温度色标不匹配问题解决方案
问题根因
你遇到的颜色与色标不匹配问题来自两个核心配置错误:
set hidden3d是面向线框类3D绘图的隐面消除配置,和pm3d曲面着色逻辑存在冲突,会干扰颜色映射的计算- pm3d默认的网格面着色规则为
corners2color mean:每个四边形网格的颜色取四个顶点温度的平均值,你边界位置的网格只有贴近z=0/z=1的一个顶点为373K,其余三个顶点均为283~298K的低温,平均值远低于373K,因此显示为浅绿色,只有顶点高度符合预期。
修复方案
修改后的完整gnuplot代码如下:
set size square set xlabel "x" set ylabel "z" set zlabel "T" set xrange [-0.01:1.01] set yrange [-0.01:1.01] # 显式指定温度范围,避免自动计算范围产生偏差 set zrange [273:373] set palette rgb 33,13,10 # 移除冲突的hidden3d配置,修改pm3d着色规则:取四个顶点温度最大值作为网格面颜色 set pm3d implicit at s corners2color max # 显式开启色条 set colorbox splot "para_heat_3D_inta.dat" using 1:2:4 with pm3d notitle pause mouse keypress
如果你是通过Shell管道一行调用gnuplot,将上述完整代码用双引号包裹后追加| gnuplot -persist即可。
若希望每个顶点的颜色直接对应自身温度而非面插值结果,也可将着色规则改为set pm3d at b,或搭配with points额外绘制边界点验证温度数值。
内容的提问来源于stack exchange,提问作者Jejouze
相关产品推荐
相关产品推荐

