fcontour
绘制等高线

语法
说明
fcontour( 将在指定区间绘图。要对 f,xyinterval)x 和 y 使用相同的区间,请将 xyinterval 指定为 [min max] 形式的二元素向量。要使用不同的区间,请指定 [xmin xmax ymin ymax] 形式的四元素向量。
fcontour(___, 设置等高线的线型和颜色。例如,LineSpec)'-r' 指定红色线条。在前面的任何输入参量组合之后使用此选项。
fcontour(___, 使用一个或多个名称-值对组参量指定线条属性。Name,Value)
fcontour( 将图形绘制到 ax,___)ax 指定的坐标区中,而不是当前坐标区中。
返回 fc = fcontour(___)FunctionContour 对象。可使用 fc 查询和修改特定 FunctionContour 对象的属性。有关属性列表,请参阅 FunctionContour 属性。
示例
指定绘图区间作为 fcontour 的第二个参量。在相同坐标区的不同区间绘制多个输入时,坐标轴范围会调整以显示所有数据。这种行为可以让您绘制分段输入。
绘制分段输入
区间为 。
fcontour(@(x,y) erf(x) + cos(y),[-5 0 -5 5]) hold on fcontour(@(x,y) sin(x) + cos(y),[0 5 -5 5]) hold off grid on

绘制 的等高线。将函数等高线对象指定给变量。
f = @(x,y) exp(-(x/3).^2-(y/3).^2) + exp(-(x+2).^2-(y+2).^2); fc = fcontour(f)

fc =
FunctionContour with properties:
Function: @(x,y)exp(-(x/3).^2-(y/3).^2)+exp(-(x+2).^2-(y+2).^2)
LineColor: 'flat'
LineStyle: '-'
LineWidth: 0.5000
Fill: off
LevelList: [0.2000 0.4000 0.6000 0.8000 1 1.2000 1.4000]
Show all properties
通过使用圆点表示法设置函数等高线对象的属性,可以将线宽更改为 1,将线型更改为虚线。通过设置 LevelList 属性,可以显示靠近 0 和 1 的等高线。添加颜色栏。
fc.LineWidth = 1;
fc.LineStyle = '--';
fc.LevelList = [1 0.9 0.8 0.2 0.1];
colorbar
通过填充下列方程的等高线之间的区域,创建看起来像日落的绘图:
f = @(x,y) erf((y+2).^3) - exp(-0.65*((x-2).^2+(y-2).^2)); fcontour(f,'Fill','on');

如果要改为插补着色,请使用 fsurf 函数,并将其 'EdgeColor' 选项设置为 'none',后跟命令 view(0,90)。
使用 'LevelList' 选项设置 fcontour 绘制等高线时所用的级别。
f = @(x,y) sin(x) + cos(y);
fcontour(f,'LevelList',[-1 0 1])
使用 'MeshDensity' 选项控制等高线的分辨率。增大 'MeshDensity' 可以使绘图更圆滑、更准确,减小该值可以提高绘图速度。
在 2×1 分块图布局中创建两个绘图。在第一个绘图中,显示 的等高线。方形的角不重合。要解决此问题,请将第二个绘图中的 'MeshDensity' 增大到 200。现在的角彼此重合,这说明增大 'MeshDensity' 可以提高分辨率。
f = @(x,y) sin(x).*sin(y); tiledlayout(2,1) nexttile fcontour(f) title('Default Mesh Density (71)') nexttile fcontour(f,'MeshDensity',200) title('Custom Mesh Density (200)')

绘制 。显示网格线、添加标题、添加轴标签。
fcontour(@(x,y) x.*sin(y) - y.*cos(x), [-2*pi 2*pi], 'LineWidth', 2); grid on title({'xsin(y) - ycos(x)','-2\pi < x < 2\pi and -2\pi < y < 2\pi'}) xlabel('x') ylabel('y')

通过设置坐标区对象的 XTickLabel 和 XTick 属性设置 x 轴刻度值和关联的标签。使用 gca 访问坐标区对象。按照同样的方式设置 y 轴刻度值和关联的标签。
ax = gca;
ax.XTick = ax.XLim(1):pi/2:ax.XLim(2);
ax.XTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0',...
'\pi/2','\pi','3\pi/2','2\pi'};
ax.YTick = ax.YLim(1):pi/2:ax.YLim(2);
ax.YTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0',...
'\pi/2','\pi','3\pi/2','2\pi'};
输入参数
要绘制的函数,指定为命名或匿名函数的函数句柄。
指定 z = f(x,y) 形式的函数。该函数必须接受两个矩阵输入参量,并返回大小相同的矩阵输出参量。为获得最佳性能,应使用数组运算符而不是矩阵运算符。例如,使用 .* (times) 而不是 * (mtimes)。
示例: f = @(x,y) sin(x) + cos(y);
x 和 y 的绘图区间,指定为下列形式之一:
[min max]形式的向量 - 对x和y都使用区间[min max]。[xmin xmax ymin ymax]形式的向量 - 对x使用区间[xmin xmax],对y使用区间[ymin ymax]。
坐标区对象。如果您不指定坐标区对象,则 fcontour 使用当前坐标区。
线型和颜色,指定为包含线型设定符和/或颜色设定符的字符向量或字符串。
示例: '--r' 指定红色虚线
下面两个表列出了线型和颜色选项。
| 线型设定符 | 描述 |
|---|---|
- | 实线(默认) |
-- | 虚线 |
: | 点线 |
-. | 点划线 |
| 颜色设定符 | 描述 |
|---|---|
| 黄色 |
| 品红色 |
| 青蓝色 |
| 红色 |
| 绿色 |
| 蓝色 |
| 白色 |
| 黑色 |
名称-值参数
以 Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。
示例: 'MeshDensity',30
此处所列的属性只是一部分。有关完整列表,请参阅 FunctionContour 属性。
每个方向上的计算点数,以数值形式指定。默认值为 71。由于 fcontour 使用自适应计算,因此实际的计算点数更大。
示例: 30
在等高线间进行填充,指定为 'on' 或 'off',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true,'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。
值为
'on'表示用颜色填充等高线之间的空间。值为
'off'表示不填充等高线之间的空间。
等高线层级,指定为 z 值向量。默认情况下,fcontour 函数选择涵盖 ZData 属性中的值范围的值。
设置此属性会将关联的模式属性设置为手动模式。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
等高线之间的间隔,指定为数值标量。例如,指定值 2 将以 2 为增量绘制等高线。默认情况下,使用 ZData 值来确定 LevelStep。
设置此属性会将关联的模式属性设置为 'manual'。
示例: 3.4
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
等高线的颜色,指定为 'flat'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。要为每个等高线使用不同的颜色,请指定 'flat'。颜色由线条的等高线值、颜色图以及颜色图与数据值间的缩放映射情况决定。有关颜色映射的详细信息,请参阅控制颜色图范围。
要对所有等高线使用相同的颜色,请指定 RGB 三元组、十六进制颜色代码、颜色名称或短名称。
对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]范围内,例如[0.4 0.6 0.7]。十六进制颜色代码是字符串标量或字符向量,以井号 (
#) 开头,后跟三个或六个十六进制数字,范围可以是0到F。这些值不区分大小写。因此,颜色代码"#FF8800"与"#ff8800"、"#F80"与"#f80"是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了一些命名颜色选项、其等效 RGB 三元组及十六进制颜色代码。
| 颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
|---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" |
|
"green" | "g" | [0 1 0] | "#00FF00" |
|
"blue" | "b" | [0 0 1] | "#0000FF" |
|
"cyan" | "c" | [0 1 1] | "#00FFFF" |
|
"magenta" | "m" | [1 0 1] | "#FF00FF" |
|
"yellow" | "y" | [1 1 0] | "#FFFF00" |
|
"black" | "k" | [0 0 0] | "#000000" |
|
"white" | "w" | [1 1 1] | "#FFFFFF" |
|
"none" | 不适用 | 不适用 | 不适用 | 无颜色 |
下表列出了浅色和深色主题中绘图的默认调色板。
| 调色板 | 调色板颜色 |
|---|---|
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。 |
|
|
|
您可以使用 orderedcolors 和 rgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。
线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。
线宽不能小于像素的宽度。如果将线宽设置为小于系统上像素宽度的值,则线条显示为一个像素的宽度。
输出参量
一个或多个 FunctionContour 对象,以标量或向量形式返回。您可以使用这些对象来查询和修改特定等高线图的属性。有关属性列表,请参阅 FunctionContour 属性。
版本历史记录
在 R2016a 中推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)












