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] Use GET to 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'};
输入参数
f
— 要绘制的函数
函数句柄
要绘制的函数,指定为命名或匿名函数的函数句柄。
指定 z = f(x,y)
形式的函数。该函数必须接受两个矩阵输入参数,并返回大小相同的矩阵输出参数。为获得最佳性能,应使用数组运算符而不是矩阵运算符。例如,使用 .*
(times
) 而不是 * (mtimes
)。
示例: f = @(x,y) sin(x) + cos(y);
xyinterval
— x
和 y
的绘图区间
[–5 5 -5 5]
(默认) | [min max]
形式的向量 | [xmin xmax ymin ymax]
形式的向量
x
和 y
的绘图区间,指定为下列形式之一:
[min max]
形式的向量 - 对x
和y
都使用区间[min max]
。[xmin xmax ymin ymax]
形式的向量 - 对x
使用区间[xmin xmax]
,对y
使用区间[ymin ymax]
。
ax
— 坐标区对象
坐标区对象
坐标区对象。如果您不指定坐标区对象,则 fcontour
使用当前坐标区。
LineSpec
— 线型和颜色
字符向量 | 字符串
线型和颜色,指定为包含线型设定符和/或颜色设定符的字符向量或字符串。
示例: '--r'
指定红色虚线
下面两个表列出了线型和颜色选项。
线型设定符 | 描述 |
---|---|
- | 实线(默认) |
-- | 虚线 |
: | 点线 |
-. | 点划线 |
颜色设定符 | 描述 |
---|---|
| 黄色 |
| 品红色 |
| 青蓝色 |
| 红色 |
| 绿色 |
| 蓝色 |
| 白色 |
| 黑色 |
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: 'MeshDensity',30
此处所列的属性只是一部分。有关完整列表,请参阅 FunctionContour 属性。
MeshDensity
— 每个方向上的计算点数
71 (默认) | 数字
每个方向上的计算点数,以数值形式指定。默认值为 71
。由于 fcontour
使用自适应计算,因此实际的计算点数更大。
示例: 30
Fill
— 在等高线间进行填充
'off'
(默认) | on/off 逻辑值
在等高线间进行填充,指定为 'on'
或 'off'
,或者指定为数值或逻辑值 1
(true
) 或 0
(false
)。值 'on'
等效于 true,'off'
等效于 false
。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState
类型的 on/off 逻辑值。
值为
'on'
表示用颜色填充等高线之间的空间。值为
'off'
表示不填充等高线之间的空间。
LevelList
— 等高线层级
由 z 值组成的向量
等高线层级,指定为 z 值向量。默认情况下,fcontour
函数选择涵盖 ZData
属性中的值范围的值。
设置此属性会将关联的模式属性设置为手动模式。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
LevelStep
— 等高线间距
0
(默认) | 数值标量
等高线之间的间隔,指定为数值标量。例如,指定值 2
将以 2 为增量绘制等高线。默认情况下,使用 ZData
值来确定 LevelStep
。
设置此属性会将关联的模式属性设置为 'manual'
。
示例: 3.4
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
LineColor
— 等高线的颜色
'flat'
(默认) | RGB 三元组 | 十六进制颜色代码 | 'r'
| 'g'
| 'b'
| ...
等高线的颜色,指定为 '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" | 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 MATLAB® 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
LineWidth
— 线条宽度
0.5
(默认) | 正值
线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。
线宽不能小于像素的宽度。如果将线宽设置为小于系统上像素宽度的值,则线条显示为一个像素的宽度。
输出参数
fc
— 一个或多个 FunctionContour
对象
标量 | 向量
一个或多个 FunctionContour
对象,以标量或向量形式返回。您可以使用这些对象来查询和修改特定等高线图的属性。有关属性列表,请参阅 FunctionContour 属性。
版本历史记录
在 R2016a 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)