Main Content

基本绘图函数

创建绘图

plot 函数具有不同的形式,具体取决于输入参数。

  • 如果 y 是向量,plot(y) 会生成 y 元素与 y 元素索引的分段线图。

  • 如果有两个向量被指定为参数,plot(x,y) 会生成 yx 的图形。

使用冒号运算符创建从 02πx 值向量,计算这些值的正弦,并绘制结果。

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

Figure contains an axes object. The axes object contains an object of type line.

添加轴标签和标题。xlabel 函数中的字符 \pi 用于创建符号 πtitle 函数中的 FontSize 属性用于增大标题所用的文本大小。

xlabel('x = 0:2\pi')
ylabel('Sine of x')
title('Plot of the Sine Function','FontSize',12)

Figure contains an axes object. The axes object with title Plot of the Sine Function contains an object of type line.

在一幅图形中绘制多个数据集

通过调用一次 plot,多个 x-y 对组参数会创建多幅图形。MATLAB® 对每条线使用不同的颜色。

例如,下列语句绘制 x 的三个相关函数:

x = 0:pi/100:2*pi;
y = sin(x);
y2 = sin(x-.25);
y3 = sin(x-.5);
plot(x,y,x,y2,x,y3)

Figure contains an axes object. The axes object contains 3 objects of type line.

legend 函数提供了一种标识各条线的简单方法:

legend('sin(x)','sin(x-.25)','sin(x-.5)')

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent sin(x), sin(x-.25), sin(x-.5).

指定线型和颜色

使用 plot 命令绘制数据时,可以指定颜色、线型和标记(例如加号或圆圈):

plot(x,y,'color_style_marker')

color_style_marker 包含一至四个字符(包括在单引号中),这些字符根据颜色、线型和标记类型构造而成。例如,

plot(x,y,'r:+')

使用红色点线绘制数据,并在每个数据点处放置一个 + 标记。

color_style_marker 由下列元素的组合形式构成。

类型含义
颜色'c'
'm'
'y'
'r'
'g'
'b'
'w'
'k'
青蓝
品红


绿


线型'-'
'--'
':'
'-.'
无字符
实线
虚线
点线
点划线
没有线条
标记类型'+'
'o'
'*'
'x'
's'
'd'
'^'
'v'
'>'
'<'
'p'
'h'
无字符
加号
空心圆
星号
字母 x
空心正方形
空心菱形
空心上三角
空心下三角
空心右三角
空心左三角
空心五角形
空心六角形
无标记

绘制线条和标记

如果指定标记类型,但未指定线型,MATLAB® 仅使用标记创建图形,而不会创建线条。例如,

plot(x,y,'ks')

在每个数据点绘制黑色正方形,但不会使用线条连接标记。

语句

plot(x,y,'r:+')

绘制红色点线,并在每个数据点处放置加号标记。

在每十个数据点处放置标记

此示例展示如何使用比绘制线条所用的数据点更少的数据点来绘制标记。它使用点线图和标记图(分别采用不同数目的数据点)绘制两次数据图:

x1 = 0:pi/100:2*pi;
x2 = 0:pi/10:2*pi;
plot(x1,sin(x1),'r:',x2,sin(x2),'r+')

Figure contains an axes object. The axes object contains 2 objects of type line.

绘制虚数和复数数据

将多个复数值作为参数传递给 plot 时,MATLAB 会忽略虚部,但传递一个复数参数时除外。对于这一特殊情况,该命令是绘制虚部对实部的图的一种快捷方式。因此,

plot(Z)

其中 Z 是复数向量或矩阵,等效于

plot(real(Z),imag(Z))

下列语句将绘制一个具有 20 条边的多边形,并在各顶点处绘制一个小圆圈。

t = 0:pi/10:2*pi;
plot(exp(1i*t),'-o')
axis equal

Figure contains an axes object. The axes object contains an object of type line.

axis equal 命令使 xy 轴上的各刻度线增量的长度相同,这会使此绘图看起来更加圆润。

将绘图添加到现有图形中

hold 命令用于将绘图添加到现有图形中。当键入

hold on

时,MATLAB 不会在您发出其他绘图命令时替换现有图形。MATLAB 而会将新图形与当前图形合并在一起。

例如,下列语句首先创建 peaks 函数的曲面图,然后叠加同一函数的等高线图:

[x,y,z] = peaks;
% Create surface plot
surf(x,y,z)
% Remove edge lines a smooth colors
shading interp
% Hold the current graph 
hold on
% Add the contour graph to the pcolor graph
contour3(x,y,z,20,'k')
% Return to default
hold off

Figure contains an axes object. The axes object contains 2 objects of type surface, contour.

图窗窗口

如果尚未创建图窗窗口,绘图函数会自动打开一个新的图窗窗口。如果打开了多个图窗窗口,MATLAB 将使用指定为“当前图窗”(通常为上次使用的图窗)的图窗窗口。

要将现有图窗窗口设置为当前的图窗,请将指针放置在该窗口中并点击鼠标,或者也可以键入

figure(n)

其中 n 是图窗标题栏中的编号。

要打开新的图窗窗口并将其作为当前图窗,请键入

figure

清空图窗以便创建新绘图

如果某图窗已存在,大多数绘图命令会清除轴并使用此图窗创建新绘图。但是,这些命令不会重置图窗属性,例如,背景色或颜色图。如果已在以前的绘图中设置图窗属性,您可以先使用带有 reset 选项的 clf 命令。

clf reset

然后创建新绘图,以便将此图窗的属性恢复为其默认值。

在一幅图窗中显示多个绘图

subplot 命令用于在同一窗口中显示多个绘图,或者在同一张纸上打印这些绘图。键入以下命令

subplot(m,n,p)

会将图窗窗口划分为由多个小子图组成的 m×n 矩阵,并选择第 p 个子图作为当前绘图。这些绘图沿图窗窗口的第一行进行编号,然后沿第二行进行编号,依此类推。例如,下列语句在图窗窗口的三个子区域中绘制数据:

x = 0:pi/20:2*pi;
subplot(3,1,1); plot(sin(x))
subplot(3,1,2); plot(cos(x))
subplot(3,1,3); plot(sin(x).*cos(x))

Figure contains 3 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line. Axes object 3 contains an object of type line.

控制轴

axis 命令提供了许多用于设置图形的比例、方向和纵横比的选项。

自动改变坐标轴范围和刻度线

默认情况下,MATLAB 查找数据的最大值和最小值,并选择坐标轴范围来覆盖此范围。MATLAB 选择范围和轴刻度线值,以便生成可清楚地显示数据的图形。但是,您可以使用 axisxlimylimzlim 函数来设置您自己的范围。

注意

更改某根轴的极限会导致其他极限也发生更改,以便更好地表示数据。要禁用自动极限设置,请输入 axis manual 命令。

设置坐标轴范围

axis 命令用于指定您自己的极限:

axis([xmin xmax ymin ymax])

或者对于三维图形,

axis([xmin xmax ymin ymax zmin zmax])

请使用命令

axis auto

重新启用自动极限选择。

设置轴纵横比

axis 命令还可用于指定多种预定义模式。例如,

axis square

使 x 轴和 y 轴的长度相同。

axis equal

使 x 轴和 y 轴上的各个刻度线增量的长度相同。这意味着

plot(exp(1i*(0:pi/10:2*pi)))

(后跟 axis squareaxis equal)会将椭圆形转变为正圆:

axis auto normal

将轴比例恢复为其默认的自动模式。

设置轴可见性

使用 axis 命令可以显示或隐藏轴。

axis on

显示轴。这是默认设置。

axis off

隐藏轴。

设置网格线

grid 命令启用和禁用网格线。语句

grid on

启用网格线,而

grid off

再次禁用网格线。

添加轴标签和标题

此示例展示如何创建图形并增强其显示:

  • 定义 x 和 y 轴的范围 (axis)

  • 对 x 和 y 轴添加标签(xlabelylabel

  • 添加标题 (title)

  • 在图形中添加文本附注 (text)

使用 LaTeX 表示法生成数学符号。

如需关于在图形中放置箭头、方框和圆圈的信息,请参阅 annotation 函数。

保存图窗

通过从文件菜单中选择保存来保存图窗。这会将图窗写入到文件,包括属性数据、图窗菜单、uicontrol 和所有注释(即整个窗口)。如果这个图窗以前未被保存过,另存为对话框则会出现。此对话框提供用于将图窗另存为 .fig 文件或将其导出为图形格式的选项。

如果以前保存过这个图窗,再次使用保存会以“静默”方式保存图窗,而另存为对话框不会出现。

要使用标准图形格式(例如,TIFF 或 JPG)保存图窗以便用于其他应用程序,请从文件菜单中选择另存为(如果需要其他控件,则选择导出设置)。

注意

当指定保存图窗的格式时,下次保存该图窗或新图窗时,将再次使用该文件格式。如果您不希望按以前使用的格式保存,请使用另存为,并确保将保存类型下拉菜单设置为要写入的文件类型。

也可通过以下命令行进行保存:

  • 使用 savefig 函数将图窗及其包含的图形对象保存为 .fig 文件。

  • 使用包含任意选项的 saveas 命令,以各种格式保存图窗。

加载图窗

您可以使用以下函数将图窗加载到 MATLAB:

  • 使用 openfig 函数加载保存为 .fig 文件的图窗。

  • 使用 imread 函数将标准图形文件(包括保存图窗)读入到 MATLAB 中。

生成 MATLAB 代码以便再建图窗

通过从图窗文件菜单中选择生成代码,可以生成用于再建图窗及其所包含的图形的 MATLAB 代码。如果您已使用绘图工具创建图形,并且希望使用相同或不同数据创建类似图形,此选项尤其有用。

保存工作区数据

通过从图窗文件菜单中选择将工作区另存为,可以保存工作区中的变量。使用图窗文件菜单中的导入数据项可以重新加载保存的数据。MATLAB 支持多种数据文件格式,包括 MATLAB 数据文件,该数据文件的扩展名为 .mat