我想用gnuplot绘制轮廓图,我想指出一些特殊颜色的特殊功能。
我通过
定义轮廓图set pm3d map
set palette defined (-1 "red", -0.1 "red", 0 "white", 0.1 "blue", 1 "blue")
这会产生一个颜色渐变,其面积较小,从红色到白色到蓝色,其余部分红色表示负数,蓝色表示正数。
我现在的问题是,我想将gnuplot自动设置为z轴的对称缩放。但是,通过指定splot [][][-200:200] 'data' u 1:2:3
和数据集来指定值,例如-300到100 gnuplot会自动重新缩放到[-200:100]
,导致我的色阶不对齐(白色区域现在大约为-50)。
有没有办法强制zrange
或获得自动对称的缩放轴?
答案 0 :(得分:3)
我不确定我是否理解这个问题,但你有没有考虑过:
set cbrange [-200:200]
来自文档:
`set cbrange`命令设置使用颜色着色的值的范围 当前的`palette`由样式`with pm3d`,`with image`和`with palette`。 颜色范围之外的值使用最近极端的颜色。
答案 1 :(得分:1)
要强制z范围,请尝试
set zr [-200:200]
在你的情节命令之前。要自动缩放轴,您可以使用stats
烹饪。主要技巧是要记住颜色条是以相对单位表示的。像这样(未经测试):
datafile = 'data.dat'
stats datafile u 3 nooutput
# assume you want some data positive and some negative
if (stats_max*stats_min > 0) {
print 'WARNING: all data has same sign. Color bars may be weird.'
}
z0 = -1*min(abs(0.1*stats_min),abs(0.1*stats_max))
z1 = 0.0
z2 = -1*z0
set palette defined (stats_min "red", z0 "red", z1 "white",
z2 "blue", stats_max "blue")