⋮
2026b

# contourf


填充的二维等高线图

函数库: TyPlot

# 语法

contourf(Z)
contourf(X,Y,Z)
contourf(___,levels)
contourf(___,Key=Value)
contourf(ax,___)
C = contourf(___)

# 说明

contourf(Z) 创建一个包含矩阵 Z 的等值线的填充等高线图,其中 Z 包含 x-y 平面上的高度值。Syslab 会自动选择要显示的等高线。Z 的列和行索引分别是平面中的 x 和 y 坐标。示例


contourf(X,Y,Z) 指定 Z 中各值的 x 和 y 坐标。


contourf(___,levels) 将要显示的等高线指定为上述任一语法中的最后一个参数。将 levels 指定为标量值 n,以在 n 个自动选择的层级(高度)上显示等高线。要在某些特定高度绘制等高线,请将 levels 指定为单调递增值的向量。要在一个高度(k)绘制等高线,请将 levels 指定为行向量 [k]。示例


contourf(___,Key=Value) 使用一个或多个名称-值对组参数指定等高线图的其他选项。请在所有其他输入参数之后指定这些选项。有关属性列表,请参阅 contour 属性。 示例


contourf(ax,___) 在目标坐标区中显示等高线图。将坐标区指定为上述任一语法中的第一个参数。


C = contourf(___) 返回等高线对象 C。显示等高线图后,使用 C 设置属性。示例

# 示例

peaks 函数的等高线

将 Z 定义为两个变量的函数。在本例中,调用 peaks 函数以创建 Z。然后显示 Z 的填充等高线图,让 Syslab 选择等高线层级。

using TyPlot
X,Y,Z = peaks();
contourf(Z)
十个层级的等高线

将 Z 定义为两个变量 X 和 Y 的函数。然后在 Z 的 10 个层级上显示等高线。

using TyPlot
using TyBase
x = LinRange(-2 * pi, 2 * pi, 100);
y = LinRange(0, 4 * pi, 100);
X, Y = meshgrid2(x, y);
Z = sin.(X) .+ cos.(Y);
contourf(X, Y, Z, 10)
具有标签的特定层级的等高线

将 Z 定义为 X 和 Y 的函数。在本例中,调用 peaks 函数以创建 X、Y 和 Z。然后显示层级 2 和 3 上的等高线。

绿色区域对应于2 和 3 的高度。

using TyPlot
X,Y,Z = peaks(50);
con = contourf(X,Y,Z,[2,3])
clabel(con, inline=false, fontsize=10, fmt="%.0f", colors="k")
一个层级的等高线

将 Z 定义为 X 和 Y 的函数。在本例中,调用 peaks 函数以创建 X、Y 和 Z。然后在 Z = 2 处显示等高线。

using TyPlot
X, Y, Z = peaks()
contourf(X, Y, Z, [2 2])
虚线等高线

创建等高线图,并指定虚线线型。

using TyPlot
X,Y,Z = peaks();
contourf(X,Y,Z,linestyle = "--", cmap="jet")
自定义线宽

创建填充等高线图。通过将 linewidth 属性设置为 3,使等高线更粗。

using TyPlot
X,Y,Z = peaks()
con = contourf(Z);

for collection in con.collections
    collection.set_linewidth(3)
end
plt_update()
不连续曲面上的等高线

在曲面上任何不连续的位置插入 NaN 值。contourf 函数不会在这些区域中绘制等高线。

将矩阵 Z 定义为 peaks 函数的采样。将列 26 中的所有值替换为 NaN 值。然后绘制修改后的 Z 矩阵的等高线。

using TyPlot
X,Y,Z = peaks();
Z[:,26] .= NaN;
con = contourf(Z);

# 输入参数

X - x 坐标
矩阵 | 向量

x 坐标,指定为大小与 Z 相同的矩阵或长度为 n 的向量,其中 m,n = size(Z)。X 的默认值是向量 [1:n;]。

当 X 是矩阵时,这些值必须在一个维度上严格递增或递减,而在另一个维度上保持不变。这个变化的维度必须与在 Y 中变化的维度相反。您可以使用 meshgrid2 函数创建 X 和 Y 矩阵。

当 X 是向量时,值必须严格递增或递减。

示例: X = 1:10

示例: X = [1 2 3; 1 2 3; 1 2 3]

示例: X,Y = meshgrid2(1:.5:10,1:.5:10)

数据类型: Int16 | Int32 | Int64 | Float16 | Float32 | Float64

Y - y 坐标
矩阵 | 向量

y 坐标,指定为大小与 Z 相同的矩阵或长度为 m 的向量,其中 m,n = size(Z)。Y 的默认值是向量 [1:m;]。

当 Y 是矩阵时,这些值必须在一个维度上严格递增或递减,而在另一个维度上保持不变。这个变化的维度必须与在 X 中变化的维度相反。您可以使用 meshgrid2 函数创建 X 和 Y 矩阵。

当 Y 是向量时,值必须严格递增或递减。

示例: Y = 1:10

示例: Y = [1 1 1; 2 2 2; 3 3 3]

示例: X,Y = meshgrid2(1:.5:10,1:.5:10)

数据类型: Int16 | Int32 | Int64 | Float16 | Float32 | Float64

Z - z 坐标
矩阵

z 坐标,指定为矩阵。此矩阵必须至少包含两行两列,并且必须至少包含两个不同值。

示例: X,Y,Z = peaks(20)

数据类型: Int16 | Int32 | Int64 | Float16 | Float32 | Float64

levels - 层级
标量 | 向量

等高线层级,指定为整数标量或向量。使用此参数可控制等高线的数量和位置。如果未指定层级,contourf 函数会自动选择层级。

  • 要在 n 个自动选择的高度绘制等高线,请将 levels 指定为标量值 n;
  • 要在某些特定高度绘制等高线,请将 levels 指定为单调递增值的向量。

contourf 函数使用当前颜色图来填充绘图中各层级之间的空间。第一种颜色填充最低层级与其上一层级之间的空间。最后一种颜色对应于大于绘图中最高层级的 Z 值。如果 Z 包含的值小于绘图中显示的最低层级,则最低层级和最小 Z 值之间的区域为白色。

示例: X,Y,Z = peaks(); contourf(X,Y,Z,10) 在 peaks 函数上 10 个自动选择的高度处绘制等高线。

示例: X,Y,Z = peaks(); contourf(X,Y,Z,[-4, 0, 4]) 在 peaks 函数上的 3 个特定高度处绘制等高线:-4、0 和 4。

数据类型: Int16 | Int32 | Int64 | Float16 | Float32 | Float64

ax - 目标坐标区
Axes 对象

目标坐标区,指定为 Axes 对象。如果未指定坐标区,则 contourf 在当前坐标区中绘图。

# 名称-值对组参数

指定可选的、以逗号分隔的 Key=Value 对组参数。Key 为参数名称,Value 为对应的值。您可采用任意顺序指定多个名称-值对组参数,如 Key1=Value1,...,KeyN=ValueN 所示。

示例: contourf(c,linestyle = "--") 指定虚线线型的填充等高图。

此处所列的属性只是一部分。有关属性列表,请参阅 contour 属性。

linestyle - 线型
"-" (默认) | "--" | ":" | "-."

线型,指定为下表中列出的选项之一。

线型 说明 表示的线条
"-" 实线
"--" 虚线
":" 点线
"-." 点划线
"none" 不支持 不支持
linewidth - 线条宽度
0.5 (默认) | 正值

等高线宽度,指定为以磅为单位的正值。一磅等于 1/72 英寸。

cmap - 颜色图
指定颜色图

颜色图,指定为"jet"、"cool"、"autumn"、"copper"等。

数据类型: String

alpha - 透明度
1 (默认) | 范围 [0,1] 中的标量

透明度,指定为下列值之一:

范围 [0,1] 中的标量 - 在所有图形对象上使用统一的透明度。值为 1 时完全不透明,值为 0 时完全透明。介于 0 和 1 之间的值表示半透明。

# 输出参数

C - 等高线对象
Contour 对象

Contour 对象。在显示等高线图后,使用此对象设置属性。有关属性列表,请参见 contour 属性。

示例: 使用 plt_get 函数获取箭头属性:

  • plt_get(c,"linewidth") 获取等高线的宽度;

  • plt_get(c,"color") 获取等高线的颜色。

示例: 使用 plt_set 函数设置箭头属性:

  • plt_set(c,"linewidth",3) 设置等高线的宽度;

  • plt_set(c,"color","r") 设置等高线的颜色。

# 另请参阅

# 函数

clabel | contour

# 属性

contour 属性