MATLAB 绘制颜色图

  1. 在 MATLAB 中使用 mesh() 函数绘制颜色图
  2. 在 MATLAB 中使用 meshc() 函数绘制颜色图
  3. 在 MATLAB 中使用 meshz() 函数绘制颜色图
  4. 在 MATLAB 中使用 surf() 函数绘制颜色图
MATLAB 绘制颜色图

在本教程中,我们将讨论如何在 MATLAB 中使用 mesh()meshc()meshz()surf() 函数绘制颜色图。

在 MATLAB 中使用 mesh() 函数绘制颜色图

要绘制给定矩阵的颜色图,可以使用 mesh() 函数,该函数在给定的 x 和 y 轴上绘制变量。如果没有给出坐标,它将使用矩阵的索引作为坐标。mesh() 函数在给定坐标上绘制给定矩阵作为高度。要将坐标提供为 mesh() 函数的输入,必须使用 meshgrid() 函数制作坐标网格,在该网格上将绘制给定的矩阵。请参见下面的代码。

a = 0:0.1:10;
z = [sin(a);sin(a)];
mesh(z)
colorbar

输出:

使用 mesh 函数的 Matlab ColorMap - 1

在上面的代码中,我们绘制了一个正弦波的颜色图。颜色图将最小值分配给最冷的颜色,将最大值分配给最热的颜色。你可以在图中看到,随着正弦波值的增加,颜色将从较冷的区域转移到较热的区域,反之亦然。你也可以使用 colorbar 功能显示颜色条。从颜色栏中,你可以看到将哪个值分配给了哪种颜色。你也可以使用 colormap 功能将颜色图更改为所需的颜色范围。例如,让我们在夏季颜色图上绘制上述正弦波。请参见下面的代码。

a = 0:0.1:10;
z = [sin(a);sin(a)];
mesh(z)
colormap summer
colorbar

输出:

使用 mesh 函数的 Matlab ColorMap-2

现在,让我们在给定的坐标上绘制矩阵。首先,我们必须使用 meshgrid() 函数创建一个网格网格,然后将坐标与矩阵一起传递以在给定坐标上绘制给定矩阵。请参见下面的示例代码。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
mesh(x,y,z)
colorbar

输出:

Matlab ColorMap-3

你可以看到 x 和 y 坐标与上图中的给定坐标完全相同。你可以在任何 x 和 y 坐标上绘制给定的矩阵。现在,让我们借助 view() 函数将此 3D 图更改为 2D。此函数更改图形的视图。使用此函数,我们只能看到两个坐标。请参见下面的代码。

a = 0:0.1:30;
z = [sin(a); sin(a)];
mesh(z)
colorbar
view(2)

输出:

Matlab ColorMap-4

在上面的代码中,我们绘制了正弦波,并使用 view() 函数将图从 3D 更改为 2D。你可以在图中看到,随着正弦波值的增加,颜色将从较冷的区域转移到较热的区域,反之亦然。你可以看到颜色栏,以检查将哪个值分配给了哪种颜色。你也可以改变其他的网格属性,比如使用 EdgeColor 属性改变边缘颜色,使用 LineColor 属性更改线型,使用 FaceColor 属性更改前部颜色,例如,让我们使用 mesh() 函数中的 FaceColor 属性。请参见下面的代码。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
mesh(x,y,z,'FaceColor','Flat')
colorbar

输出:

Matlab ColorMap-5

在上面的代码中,我们将网格图的面颜色更改为平面,这意味着图的表面将是平坦的,如上图所示。查看此链接以获取 mesh() 函数和属性的更多信息。

在 MATLAB 中使用 meshc() 函数绘制颜色图

要绘制给定矩阵的颜色图,可以使用 meshc() 函数,该函数在给定的 x 和 y 轴上绘制变量的颜色图,并在网格图下添加轮廓图。如果没有给出坐标,它将使用矩阵的索引作为坐标。meshc() 函数将给定的矩阵绘制为给定坐标上的高度。要将坐标作为 meshc() 函数的输入,必须使用 meshgrid() 函数制作坐标网格,在该网格上将绘制给定的矩阵。例如,让我们绘制一个矩阵。请参见下面的代码。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
meshc(x,y,z)
colorbar

输出:

Matlab ColorMap-6

你也可以使用 colormap 函数将颜色图更改为所需的颜色范围。例如,让我们在夏季颜色图上绘制上述正弦波。请参见下面的代码。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
meshc(x,y,z)
colorbar
colormap winter

输出:

Matlab ColorMap-7

你还可以使用 meshc() 函数中的 EdgeColor 属性来更改网格的边缘颜色和轮廓的边缘颜色。请参见下面的代码。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
sc = meshc(x,y,z)
sc(1).EdgeColor = 'r';
sc(2).EdgeColor = 'b';
colorbar

输出:

Matlab ColorMap-8

在上面的代码中,我们将网格图的边缘颜色更改为红色,将轮廓图的边缘颜色更改为蓝色。你可以从可用颜色中选择所需的任何颜色。你也可以更改图中等高线图的位置。例如,让我们更改轮廓图的位置,并使用 Zlocation 属性​​将其绘制在 z 轴上。请参见下面的代码。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
sc = meshc(x,y,z)
sc(2).ZLocation = 'zmax';
colorbar

输出:

Matlab ColorMap-9

查看此网页以获取有关 meshc() 函数的更多信息。

在 MATLAB 中使用 meshz() 函数绘制颜色图

要绘制给定矩阵的颜色图,可以使用 meshz() 函数,该函数在给定的 x 和 y 轴上绘制变量的颜色图,并在网格图下添加窗帘。如果没有给出坐标,它将使用矩阵的索引作为坐标。meshz() 函数将给定的矩阵绘制为给定坐标上的高度。要将坐标作为 meshz() 函数的输入,必须使用 meshgrid() 函数制作坐标网格,在该网格上将绘制给定的矩阵。例如,让我们绘制一个矩阵。请参见下面的代码。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
meshz(x,y,z)
colorbar

输出:

Matlab ColorMap-10

你也可以使用 colormap 函数将颜色图更改为所需的颜色范围。例如,让我们在夏季颜色图上绘制上述正弦波。请参见下面的代码。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
meshz(x,y,z)
colorbar
colormap winter

输出:

Matlab ColorMap-11

你还可以使用 meshz() 函数中的 EdgeColor 属性来更改网格的边缘颜色。请参见下面的代码。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
sc = meshz(x,y,z)
sc(1).EdgeColor = 'g';

输出:

Matlab ColorMap-12

在上面的代码中,我们将网格图的边缘颜色更改为蓝色。你可以从可用颜色中选择所需的任何颜色。查看此网页以获得有关 meshz() 函数的更多详细信息。

在 MATLAB 中使用 surf() 函数绘制颜色图

surf() 函数的功能与 mesh() 函数的功能相同,只是区别在于 surf() 函数绘制的矩阵为纯色,而 mesh() 函数绘制的矩阵则为无色颜色。除此之外,surf()mesh() 是相同的功能。请查看上述 mesh() 函数。查看此网页以获得有关 surf() 函数的更多信息。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - MATLAB Plot