主要内容

本页采用了机器翻译。点击此处可查看英文原文。

demcmap

适用于地形高程数据的颜色图

说明

demcmap(Z) 根据从输入参数 Z 推导出的高程数据范围,设置颜色图和颜色轴范围。

  • 默认的颜色图将绿色和棕色的色调分配给正高程值,并将各种蓝色色调分配给低于海平面的负高程值。

  • 分配给陆地和海洋的颜色数量与地形高程和水深范围成比例,默认总数为 64 种。颜色轴的边界值经过计算,使得陆地与海洋的分界线与零高程等高线相匹配。

  • 该颜色图应用于当前图窗,颜色轴的范围值应用于当前坐标区。

示例

demcmap(Z,ncolors) 创建一个长度为 ncolors 的颜色图。

demcmap(Z,ncolors,cmapsea,cmapland)cmapseacmapland 分别分配给海平面以下和海平面以上的高度。

示例

demcmap('inc',Z,deltaz) 选择颜色数量和颜色轴范围,使得每种颜色大致代表高程的递增量 deltaz

  • 字面上的 'inc'demcmap 发出信号,表明 Z 之后的第一个参数将是 deltaz

demcmap('inc',Z,deltaz,cmapsea,cmapland)cmapseacmapland 分别分配给海平面以下和海平面以上的高度。

示例

[cmap,climits] = demcmap(___) 返回颜色图 cmap 和颜色轴限值 climits,使用上述任何语法均可,但不会将其应用于图窗或坐标区属性。

  • 即使只指定了一个输出参数,也不会改变图窗或坐标区的属性。

示例

全部折叠

加载高程栅格数据和地理单元参考对象。然后,通过指定数据的最大值和最小值来应用一个颜色图。

load topo60c
axesm hatano
meshm(topo60c,topo60cR)
zlimits = [min(topo60c(:)) max(topo60c(:))];
demcmap(zlimits)
colorbar

Figure contains an axes object. The axes object contains an object of type surface.

自定义 RGB 颜色图(例如 cmapsseacmapland)通过插值方式填充图窗颜色图。每张颜色图中的颜色分别映射到地图上的陆地和海域区域。指定的颜色总数少于默认的 64 种。当第一个参数为高程数据网格时,demcmap 会在内部确定高程数据的最大值和最小值范围,如下例所示。

load topo60c
axesm hatano
meshm(topo60c,topo60cR)
cmapsea  = [0.8 0 0.8; 0 0 0.8];
cmapland = [0.7 0 0; 0.8 0.8 0; 1 1 0.8 ];
demcmap(topo60c,32,cmapsea,cmapland)
colorbar

Figure contains an axes object. The axes object contains an object of type surface.

以下 demcmap 示例通过选择最佳颜色数量来控制颜色量化,使得每种颜色代表约 2000 的高度增量。

load topo60c
worldmap('world')
geoshow(topo60c,topo60cR,'DisplayType','texturemap')
demcmap('inc',[max(topo60c(:)) min(topo60c(:))],2000);
colorbar

Figure contains an axes object. The hidden axes object contains 18 objects of type patch, surface, line, text.

输入参数

全部折叠

地形高程范围以向量或矩阵形式指定。若 Z 是包含两个元素的向量,则其指定地形高程数据的最小值与最大值;元素顺序无关紧要。若 Z 为矩阵,则其定义了一个高程网格,其中正值与负值分别代表海平面以上与以下的点位。上述两种 demcmap 的语法在图的颜色图和坐标区属性上的效果完全相同。

数据类型: single | double | int8 | int32 | uint8 | uint16 | uint32

颜色图中的颜色数量,以标量形式指定。它定义了图例颜色图中 mx3 RGB 矩阵中 m 的行数。

数据类型: double

  • RGB 颜色图以 mx3 数组形式指定,可包含任意数量的行。两个颜色图的元素数量不必相同。它们作为基础集,用于通过插值填充图窗的颜色图。

  • cmapseacmapland 替换默认的颜色图。通过在任意颜色图矩阵处提供空矩阵,可保留陆地或海洋的默认颜色图。

该图窗的颜色图中分配给负高程的部分源自 cmapsseacmapland 则在正高程中发挥类似作用。

数据类型: double

以标量形式指定的高度增量。默认或用户提供的颜色图的颜色量化经过调整,使得每个离散颜色大致代表仰角的 deltaz 增量。

数据类型: double

输出参量

全部折叠

RGB 颜色图以矩阵形式返回,该矩阵是为图窗颜色图构造的。当您希望获取颜色图和颜色轴范围而不将其自动应用于图窗或坐标区属性时,请提供输出参数。即使只指定一个输出 (cmap),这些属性仍保持不变。

数据类型: double

颜色轴范围以向量形式返回。由于需将有限数量的颜色拟合至高程数据的范围范围,climits 可能与输入参数 Z 推导出的值存在差异,此差异源于量化过程。

当您希望获取颜色图和颜色轴范围而不将其自动应用于图窗或坐标区时,请提供输出参数。

数据类型: double

算法

若高程网格数据同时包含正负值,则计算出的颜色图 cmap 将具有长度为 nsea 的“海洋”分区和长度为 nland 的“陆地”分区。nseanland 之和等于计算颜色图中条目的总数。nseanland 的实际值取决于条目数量以及高程数据负值与正值极限的相对范围。海区划分由第 1 行至第 nsea 行构成,陆区划分由第 nsea + 1 行至第 ncolors 行构成。该图窗的颜色图中,海洋与陆地区域填充的颜色均由基础 RGB 颜色图 cmapseacmapland 进行插值生成。在下面的图窗中,所示的海陆 3x3 RGB 颜色图是 demcmap 在用户未提供自定义颜色图时,用于填充图窗颜色图的默认颜色。

Comparison of figure colormap with default cmapland and default cmapsea colormaps

若高程网格数据仅包含正值或负值,则图窗颜色图将完全基于对应的海域或陆地颜色图生成。

版本历史记录

在 R2006a 之前推出

另请参阅

| | | |