尽管@whuber 的回答提供了您所要求的内容,但我想提醒您,出于两个原因,您所问的可能不是直观表示数据的最佳方式。
- 观众自然会认为颜色是按值(深度)而不是按等级均匀分布的。您将不得不努力使用标签,以使观众的认知大脑推翻他们的视觉系统告诉他们的内容。
- 对您的观众来说,排名可能并不比实际深度更重要。例如,如果在 0 和 1 之间有很多值,那么分析这些值的分布方式是否重要?
当然,您最了解您的应用程序,所以我不能说正确的答案是什么,但下面是一些使用由
r = Sqrt((:x * :x + :y * :y) / 400);
t = ArcTan(:y, :x);
z = (12 * Exp(-r * r * 3)) * Abs(Sin(2 * Pi() * r) - r * Cos(3 * t))
数据从 0 到 12.5,分布如下:

一个 3-D 表面图显示了一些山峰、一个浅槽和一个小丘:

现在让我们看一些二维等高线图。
直线颜色映射,它遗漏了您注意到的较小特征:

如果深层区域的变化不重要,那么剪裁颜色映射可以为较小的深度提供更多颜色,同时在该区域保持线性映射:

为了比较,这是等级颜色的视图(抱歉,我的图例是等级值而不是深度值):

我不确定这是否可以很好地代表您的应用程序。浅槽中的细节被夸大了。日志颜色映射是相似的,并且具有一些真实解释的优点并且可以在数据集之间保持一致,但是日志仍然不是感知的(再次为图例道歉):

最后,这是一种稍微不同方向的方法,可以与上述任何方法结合以提高分辨率:多色调颜色映射。在这种情况下,着色是线性的并且被裁剪:

最后,我的软件不允许使用的一种方法是使用多色调分段线性颜色映射,我在一些高程图中看到过。例如,低海拔是 50 英尺增量的绿色,中海拔是 200 英尺增量的棕褐色,高海拔是 800 英尺增量的灰色。
底线:如果观众的大脑与你的视觉感知系统一起工作而不是与之对抗会更好。