Gnuplot:设置第三个(彩色)点的范围

时间:2012-06-13 09:07:23

标签: gnuplot

使用gnuplot绘制颜色贴图时,我通常使用以下几行:

  ...
  set palette rgbformulae 33,13,10
  plot "file.dat" using 1:2:3 with points pointtype '7' palette

通常第三个点的范围(出现在图例中)由gnuplot自动设置。但是我怎么能改变呢?说我希望第3点的范围从0到1500。

有什么建议吗?

1 个答案:

答案 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也可能有用)。您可能需要稍微重新构建数据文件,但绘制颜色贴图就是绘制样式的风格。