# 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") 设置等高线的颜色。



