8

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

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

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

有什么建议么?

4

1 回答 1

13

这实际上是一个非常好的问题——假设您的意思是要确定颜色条范围(而不是图例 [ie key]——图例通常没有该信息)。

我的第一个想法是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可能也可以)。您可能需要稍微重构您的数据文件,但绘制彩色地图是绘图风格的基础。

于 2012-06-13T11:59:32.517 回答