【发布时间】:2013-06-17 18:33:05
【问题描述】:
我正在尝试在三角形表面上绘制热图,坐标和“热值”是通过页面 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
所以,我要离开这个plot
这不是我想要的......
我不明白如何告诉 pm3d 不要填充不在数据文件中的区域(例如三角形之外)以及为什么三角形顶部边缘比热图高。
有没有办法按照我想要的方式绘制数据?
在 pm3d 文档中它说它可以留下空白,但是如何?
谢谢
【问题讨论】:
标签: plot geometry gnuplot heatmap