本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

plot

二维线图

说明

示例

plot(X,Y) 创建 Y 中数据对 X 中对应值的二维线图。

  • 如果 XY 都是向量,则它们的长度必须相同。plot 函数绘制 YX 的图。

  • 如果 XY 均为矩阵,则它们的大小必须相同。plot 函数绘制 Y 的列对 X 的列的图。

  • 如果 XY 中的一个是向量而另一个是矩阵,则矩阵的各维中必须有一维与向量的长度相等。如果矩阵的行数等于向量长度,则 plot 函数绘制矩阵中的每一列对向量的图。如果矩阵的列数等于向量长度,则该函数绘制矩阵中的每一行对向量的图。如果矩阵为方阵,则该函数绘制每一列对向量的图。

  • 如果 XY 之一为标量,而另一个为标量或向量,则 plot 函数会绘制离散点。但是,要查看这些点,您必须指定标记符号,例如 plot(X,Y,'o')

plot(X,Y,LineSpec) 设置线型、标记符号和颜色。

示例

plot(X1,Y1,...,Xn,Yn) 绘制多个 XY 对组的图,所有线条都使用相同的坐标区。

示例

plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn) 设置每个线条的线型、标记符号和颜色。您可以混用 XYLineSpec 三元组和 XY 对组:例如,plot(X1,Y1,X2,Y2,LineSpec2,X3,Y3)

示例

plot(Y) 创建 Y 中数据对每个值索引的二维线图。

  • 如果 Y 是向量,x 轴的刻度范围是从 1 至 length(Y)

  • 如果 Y 是矩阵,则 plot 函数绘制 Y 中各列对其行号的图。x 轴的刻度范围是从 1 到 Y 的行数。

  • 如果 Y 是复数,则 plot 函数绘制 Y 的虚部对 Y 的实部的图,使得 plot(Y) 等效于 plot(real(Y),imag(Y))

plot(Y,LineSpec) 设置线型、标记符号和颜色。

示例

plot(___,Name,Value) 使用一个或多个 Name,Value 对组参数指定线条属性。有关属性列表,请参阅 Line 属性。可以将此选项与前面语法中的任何输入参数组合一起使用。名称-值对组设置将应用于绘制的所有线条。

示例

plot(ax,___) 将在由 ax 指定的坐标区中,而不是在当前坐标区 (gca) 中创建线条。选项 ax 可以位于前面的语法中的任何输入参数组合之前。

示例

h = plot(___) 返回由图形线条对象组成的列向量。在创建特定的图形线条后,可以使用 h 修改其属性。有关属性列表,请参阅 Line 属性

示例

全部折叠

x 创建为由 0 和 2π 之间的线性间隔值组成的向量。在各值之间使用递增量 π/100。将 y 创建为 x 的正弦值。创建数据的线图。

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

x 定义为 100 个介于 -2π2π 之间的线性间隔值。将 y1y2 定义为 x 的正弦和余弦值。创建上述两个数据集的线图。

x = linspace(-2*pi,2*pi);
y1 = sin(x);
y2 = cos(x);

figure
plot(x,y1,x,y2)

Y 定义为 magic 函数返回的 4×4 矩阵。

Y = magic(4)
Y = 4×4

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

创建 Y 的二维线图。MATLAB® 将矩阵的每一列绘制为单独的线条。

figure
plot(Y)

绘制三条正弦曲线,每条曲线之间存在较小的相移。第一条曲线使用默认的线型。为第二条曲线指定虚线样式,第三条曲线指定点式线样式。

x = 0:pi/100:2*pi;
y1 = sin(x);
y2 = sin(x-0.25);
y3 = sin(x-0.5);

figure
plot(x,y1,x,y2,'--',x,y3,':')

MATLAB® 按默认的色序循环使用线条颜色。

绘制三条正弦曲线,每条曲线之间存在较小的相移。第一条正弦曲线使用绿色线条,不带标记。第二条正弦曲线使用蓝色虚线,带圆形标记。第三条正弦曲线只使用青蓝色星号标记。

x = 0:pi/10:2*pi;
y1 = sin(x);
y2 = sin(x-0.25);
y3 = sin(x-0.5);

figure
plot(x,y1,'g',x,y2,'b--o',x,y3,'c*')

通过指定标记符号并将 MarkerIndices 属性设置为名称-值对组,创建一个线图并每隔四个数据点显示一个标记。

x = linspace(0,10);
y = sin(x);
plot(x,y,'-o','MarkerIndices',1:5:length(y))

创建线图并使用 LineSpec 选项指定带正方形标记的绿色虚线。使用 Name,Value 对组来指定线宽、标记大小和标记颜色。将标记边颜色设置为蓝色,并使用 RGB 颜色值设置标记面颜色。

x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));

figure
plot(x,y,'--gs',...
    'LineWidth',2,...
    'MarkerSize',10,...
    'MarkerEdgeColor','b',...
    'MarkerFaceColor',[0.5,0.5,0.5])

使用 linspace 函数将 x 定义为 0 到 10 之间 150 个值组成的向量。将 y 定义为 x 的余弦值。

x = linspace(0,10,150);
y = cos(5*x);

创建余弦曲线的二维线图。使用 RGB 颜色值将线条颜色更改为蓝绿色。使用 titlexlabelylabel 函数为图形添加标题和轴标签。

figure
plot(x,y,'Color',[0,0.7,0.9])

title('2-D Line Plot')
xlabel('x')
ylabel('cos(5x)')

t 定义为 7 个介于 0 到 3 分钟之间的 duration 线性间隔值。绘制随机数据并使用 'DurationTickFormat' 名称-值对组参数指定 duration 刻度线的格式。

t = 0:seconds(30):minutes(3);
y = rand(1,7);

plot(t,y,'DurationTickFormat','mm:ss')

创建一个包含两个子图的图窗,并将 Axes 对象返回为 ax1ax2。通过引用 Axes 对象在每个坐标区上创建一个二维线图。通过将 Axes 对象传递给 titleylabel 函数,为每个坐标区添加标题和 y 轴标签。

ax1 = subplot(2,1,1); % top subplot
x = linspace(0,3);
y1 = sin(5*x);
plot(ax1,x,y1)
title(ax1,'Top Subplot')
ylabel(ax1,'sin(5x)')

ax2 = subplot(2,1,2); % bottom subplot
y2 = sin(15*x);
plot(ax2,x,y2)
title(ax2,'Bottom Subplot')
ylabel(ax2,'sin(15x)')

x 定义为 100 个介于 -2π2π 之间的线性间隔值。将 y1y2 定义为 x 的正弦和余弦值。为上述两个数据集分别创建线图,并在 p 中返回两个图形线条。

x = linspace(-2*pi,2*pi);
y1 = sin(x);
y2 = cos(x);
p = plot(x,y1,x,y2);

将第一个线条的线宽更改为 2。向第二行添加星形标记。从 R2014b 开始,您可以使用圆点表示法设置属性。如果您使用的是早期版本,请改用 set 函数。

p(1).LineWidth = 2;
p(2).Marker = '*';

绘制以点 (4,3) 为中心以 2 为半径的圆。使用 axis equal 可沿每个坐标方向使用相等的数据单位。

r = 2;
xc = 4;
yc = 3;

theta = linspace(0,2*pi);
x = r*cos(theta) + xc;
y = r*sin(theta) + yc;
plot(x,y)
axis equal

输入参数

全部折叠

y 值,指定为标量、向量或矩阵。要根据特定的 x 值绘图,还必须指定 X

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

x 值,指定为标量、向量或矩阵。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

线型、标记和颜色,指定为包含符号的字符向量或字符串。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。

示例: '--or' 是带有圆形标记的红色虚线

线型说明
-实线(默认)
--虚线
:点线
-.点划线
标记说明
o圆圈
+加号
*星号
.
x叉号
s方形
d菱形
^上三角
v下三角
>右三角
<左三角
p五角形
h六角形
颜色说明

y

黄色

m

品红色

c

青蓝色

r

红色

g

绿色

b

蓝色

w

白色

k

黑色

目标坐标区,指定为 Axes 对象、PolarAxes 对象或 GeographicAxes 对象。如果不指定坐标区或当前坐标区是笛卡尔坐标区,plot 函数将使用当前坐标区。要在极坐标区上绘图,请指定 PolarAxes 对象作为第一个输入参数,或者使用 polarplot 函数。要在地理坐标区上绘图,请指定 GeographicAxes 对象作为第一个输入参数,或者使用 geoplot 函数。

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

示例: 'Marker','o','MarkerFaceColor','red'

此处列出的图形线条属性只是一个子集。有关完整列表,请参阅 Line 属性

线条颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#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'

示例: 'blue'

示例: [0 0 1]

示例: '#0000FF'

线型,指定为下表中列出的选项之一。

线型说明表示的线条
'-'实线

'--'虚线

':'点线

'-.'点划线

'none'无线条无线条

线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。

标记符号,指定为下表中的标记之一。默认情况下,图形线条没有标记。通过指定标记符号沿该线条上的每个数据点添加标记。

说明
'o'圆圈
'+'加号
'*'星号
'.'
'x'叉号
'square''s'方形
'diamond''d'菱形
'^'上三角
'v'下三角
'>'右三角
'<'左三角
'pentagram''p'五角星(五角形)
'hexagram''h'六角星(六角形)
'none'无标记

示例: 'Marker','+'

示例: 'Marker','diamond'

要显示标记的数据点的索引,指定为正整数向量。如果不指定索引,MATLAB 将在每个数据点显示一个标记。

注意

要查看标记,还必须指定标记符号。

示例: plot(x,y,'-o','MarkerIndices',[1 5 10]) 在第一、第五和第十个数据点处显示圆形标记。

示例: plot(x,y,'-x','MarkerIndices',1:3:length(y)) 每隔三个数据点显示一个交叉标记。

示例: plot(x,y,'Marker','square','MarkerIndices',5) 在第五个数据点显示一个正方形标记。

标记轮廓颜色,指定为 'auto'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认值 'auto' 使用与 Color 属性相同的颜色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#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'

标记填充颜色,指定为 'auto'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。'auto' 选项使用与父坐标区的 Color 属性相同的颜色。如果您指定 'auto',并且坐标区图框不可见,则标记填充颜色为图窗的颜色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#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'

标记大小,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。

datetime 刻度标签的格式,指定为以逗号分隔的对组,该对组由 'DatetimeTickFormat' 和一个包含日期格式的字符向量或字符串组成。可使用字母 A-Za-z 构造一个自定义格式。这些字母对应于日期的 Unicode® 区域设置数据标记语言 (LDML) 标准。可以使用连字符、空格或冒号等非 ASCII 字母字符来分隔字段。

如果未为 'DatetimeTickFormat' 指定值,则 plot 将基于坐标轴范围自动优化和更新刻度标签。

示例: 'DatetimeTickFormat','eeee, MMMM d, yyyy HH:mm:ss' 显示日期和时间,例如 Saturday, April 19, 2014 21:41:06

下表列举了多种常见的显示格式和纽约市 2014 年 4 月 19 日(星期六)下午 9:41:06 的格式化输出示例。

DatetimeTickFormat 的值示例
'yyyy-MM-dd'2014-04-19
'dd/MM/yyyy'19/04/2014
'dd.MM.yyyy'19.04.2014
'yyyy年 MM月 dd日'2014年 04月 19日
'MMMM d, yyyy'April 19, 2014
'eeee, MMMM d, yyyy HH:mm:ss'Saturday, April 19, 2014 21:41:06
'MMMM d, yyyy HH:mm:ss Z'April 19, 2014 21:41:06 -0400

有关有效字母标识符的完整列表,请参阅日期时间数组的 Format 属性。

DatetimeTickFormat 不是图形线条属性。创建绘图时,必须使用名称-值对组参数设置刻度格式。或者,使用 xtickformatytickformat 函数设置格式。

日期时间标尺的 TickLabelFormat 属性存储格式。

duration 刻度标签的格式,指定为以逗号分隔的对组,该对组由 'DurationTickFormat' 和一个包含持续时间格式的字符向量或字符串组成。

如果未为 'DurationTickFormat' 指定值,则 plot 将基于坐标轴范围自动优化和更新刻度标签。

要将持续时间显示为包含小数部分的单个数字,例如 1.234 小时,请指定下表中的值之一。

DurationTickFormat 的值 说明
'y'精确定长年的数目。固定长度的一年等于 365.2425 天。
'd'精确定长天的数目。固定长度的一天等于 24 小时。
'h'小时数
'm'分钟数
's'秒数

示例: 'DurationTickFormat','h' 以固定长度的天数显示持续时间值。

要以数字计时器的形式显示持续时间,请指定下列值之一。

  • 'dd:hh:mm:ss'

  • 'hh:mm:ss'

  • 'mm:ss'

  • 'hh:mm'

此外,可以通过附加多达 9 个 S 字符显示多达 9 位小数的秒位。

示例: 'DurationTickFormat','hh:mm:ss.SSS' 以三位数显示持续时间的毫秒数。

DurationTickFormat 不是图形线条属性。创建绘图时,必须使用名称-值对组参数设置刻度格式。或者,使用 xtickformatytickformat 函数设置格式。

持续时间标尺的 TickLabelFormat 属性存储格式。

输出参数

全部折叠

一个或多个图形线条对象,以标量或向量的形式返回。这些是唯一标识符,可以用来查询和修改特定图形线条的属性。有关属性列表,请参阅 Line 属性

提示

  • 使用 NaNInf 值将行断开。例如,以下代码绘制前两个元素,跳过第三个元素,并使用最后两个元素绘制另一线条:

    plot([1,2,NaN,4,5])

  • plot 使用基于坐标区的 ColorOrderLineStyleOrder 属性的颜色和线型。plot 循环使用具有第一种线型的颜色。然后对其他每种线型上再次按顺序循环使用颜色。

    您可以通过设置 ColorOrderLineStyleOrder 属性的默认值更改默认颜色和线型。例如,要将默认线型设置为带星号标记的实线、点线、无线条的圆形标记,请使用以下命令:

    set(groot,'defaultAxesLineStyleOrder',{'-*',':','o'}) 

    有关设置默认值的详细信息,请参阅默认属性值

扩展功能

在 R2006a 之前推出