我正在尝试在三角形表面上绘制热图,坐标和“热值”是使用页面 staff.aist.go.jp/a.noda/programs/ternary/ternary-en.html 上显示的方法获得的。
所以,我处理数据并获得以下形式的数据文件:
x y val
其中x
和y
是介于 0 和 1 之间的值,并且val
是表示我需要显示的频率的整数。
数据文件是这样的: http: //tinyurl.com/lqsqtvv
情节脚本是这样的:
#!/usr/bin/gnuplot
reset
set terminal pngcairo size 640,480
set output 'heat_map_triangle.png'
set border linewidth 0
unset tics
set bmargin 3
set lmargin 3
set rmargin 3
set tmargin 3
set dgrid3d
set pm3d map
#set pm3d ftriangles
set pm3d interpolate 0,0
set pm3d at bs
set label 'Y' at 0, -0.03 center
set label 'Z' at 1, -0.03 center
set label 'X' at 0.5, 0.886 center
set style line 1 lt 1 lw 3 pt -1 ps 1
# x
set arrow 1 from 0,0 to 1, 0.0 nohead linestyle 1
# z
set arrow 11 from 1, 0 to 0.50, 0.866 nohead linestyle 1
# y
set arrow 21 from 0.50, 0.866 to 0,0 nohead linestyle 1
splot "./triangle.out" using 1:2:3
所以,我要退出这个情节
这不正是我想要的......
我不明白如何告诉 pm3d 不要填充不在数据文件中的区域(例如在三角形之外)以及为什么三角形顶部边缘比热图高。
有没有办法按照我想要的方式绘制数据?
在 pm3d 文档中它说它可以留下空白,但是如何?
谢谢