使用 gnuplot 绘制颜色图时,我通常使用以下几行:
...
set palette rgbformulae 33,13,10
plot "file.dat" using 1:2:3 with points pointtype '7' palette
通常第三点的范围(出现在图例中)由 gnuplot 自动设置。但是我该如何改变呢?假设我希望第三个点的范围是从 0 到 1500。
有什么建议么?
使用 gnuplot 绘制颜色图时,我通常使用以下几行:
...
set palette rgbformulae 33,13,10
plot "file.dat" using 1:2:3 with points pointtype '7' palette
通常第三点的范围(出现在图例中)由 gnuplot 自动设置。但是我该如何改变呢?假设我希望第三个点的范围是从 0 到 1500。
有什么建议么?
这实际上是一个非常好的问题——假设您的意思是要确定颜色条范围(而不是图例 [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
可能也可以)。您可能需要稍微重构您的数据文件,但绘制彩色地图是绘图风格的基础。