使用gnuplot绘制颜色贴图时,我通常使用以下行:
...
set palette rgbformulae 33,13,10
plot "file.dat" using 1:2:3 with points pointtype '7' palette
Run Code Online (Sandbox Code Playgroud)
通常,第三个点的范围(出现在图例中)由gnuplot自动设置.但是我怎么能改变呢?说我希望第3点的范围从0到1500.
有什么建议?
mgi*_*son 12
这实际上是一个非常好的问题 - 假设您的意思是您希望确定颜色条范围(而不是图例[即关键] - 图例通常不具有该信息).
我的第一个想法是set cbrange.这可能会做你想要的 -
set cbrange [0:1500]
set palette rgbformulae 33,13,10
plot "file.dat" u 1:2:3 w p pt 7 palette
Run Code Online (Sandbox Code Playgroud)
然而,问题是"你想要超出范围点你想做什么?" 此解决方案将移出范围点到刻度的底部/顶部(例如,对于负数,紫色,对于大于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
Run Code Online (Sandbox Code Playgroud)
你的边界会比以前略有不同,但这并不是什么大不了的事.
选项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
Run Code Online (Sandbox Code Playgroud)
此外,为了绘制彩色地图,您可能需要查看pm3d绘图样式(image也可能有效).您可能需要稍微重新构建数据文件,但绘制颜色贴图是绘制样式的风格.