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)