1

我想用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或获得自动对称的缩放轴?

4

2 回答 2

3

我不确定我是否理解问题,但您是否考虑过:

set cbrange [-200:200]

从文档中:

`set cbrange` 命令设置使用当前 `palette` 按样式 `with pm3d`、`with image` 和 `with palette` 着色的值范围。颜色范围之外的值使用最接近的颜色。

于 2013-05-21T17:52:16.353 回答
2

要强制 az 范围,请尝试

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")
于 2013-05-21T12:47:03.563 回答