使用gnuplot绘制颜色贴图时,我通常使用以下几行:
...
set palette rgbformulae 33,13,10
plot "file.dat" using 1:2:3 with points pointtype '7' palette
通常第三个点的范围(出现在图例中)由gnuplot自动设置。但是我怎么能改变呢?说我希望第3点的范围从0到1500。
有什么建议吗?
答案 0 :(得分:11)
这实际上是一个非常好的问题 - 假设您的意思是您希望确定颜色条范围(而不是图例[即关键字] - 图例通常不具有该信息)。
我的第一个想法是set cbrange
。这可能会做你想要的 -
set cbrange [0:1500]
set palette rgbformulae 33,13,10
plot "file.dat" u 1:2:3 w p pt 7 palette
然而,问题是“你想在超出范围的点上发生什么?”该解决方案将移出范围点到刻度的底部/顶部(例如,对于负数为紫色,对于大于1500的数字为红色)。我的下一个想法是你应该能够通过set zrange [0:1500]
剪掉这些点 - 但这不起作用。此时您至少有2个选项。
选项1:使用splot:
set view map
set cbrange [0:1500]
set zrange [0:1500]
set palette rgbformulae 33,13,10
splot "file.dat" u 1:2:3 w p pt 7 palette
你的边界会比以前略有不同,但这并不是什么大不了的事。
选项2:使用三元运算符进行过滤(您已从上一个问题中了解到):
set cbrange [0:1500]
set palette rgbformulae 33,13,10
inrange(c)=((c>=0) && (c<=1500))? c : (1/0)
plot "file.dat" u 1:2:(inrange($3)) w p pt 7 palette
此外,为了绘制彩色地图,您可能需要查看pm3d
绘图样式(image
也可能有用)。您可能需要稍微重新构建数据文件,但绘制颜色贴图就是绘制样式的风格。