plot:
二维线图函数
语法
plot(X,Y)
plot(X,Y,LineSpec)
plot(X1,Y1,...,Xn,Yn)
plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn)
plot(Y)
plot(Y,LineSpec)
plot(___,Name,Value)
plot(ax,___)
h = plot(___)
说明
plot(
创建 X
,Y
)Y
中数据对 X
中对应值的二维线图。
-
如果
X
和Y
都是向量,则它们的长度必须相同。plot
函数绘制Y
对X
的图。 -
如果
X
和Y
均为矩阵,则它们的大小必须相同。plot
函数绘制Y
的列对X
的列的图。 -
如果
X
或Y
中的一个是向量而另一个是矩阵,则矩阵的各维中必须有一维与向量的长度相等。如果矩阵的行数等于向量长度,则plot
函数绘制矩阵中的每一列对向量的图。如果矩阵的列数等于向量长度,则该函数绘制矩阵中的每一行对向量的图。如果矩阵为方阵,则该函数绘制每一列对向量的图。 -
如果
X
或Y
之一为标量,而另一个为标量或向量,则plot
函数会绘制离散点。但是,要查看这些点,您必须指定标记符号,例如plot(X,Y,'o')
。
plot(
设置线型、标记符号和颜色。X
,Y
,LineSpec
)
plot(
绘制多个 X
1,Y
1,...,X
n,Y
n)X
、Y
对组的图,所有线条都使用相同的坐标区。
plot(
设置每个线条的线型、标记符号和颜色。您可以混用 X
1,Y
1,LineSpec
1,...,X
n,Y
n,LineSpec
n)X
、Y
、LineSpec
三元组和 X
、Y
对组:例如,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 和之间的线性间隔值组成的向量。在各值之间使用递增量。将 y
创建为 x
的正弦值。创建数据的线图。
x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
绘制多个线条
将 x
定义为 100 个介于和之间的线性间隔值。将 y1
和 y2
定义为 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×416 2 3 135 11 10 89 7 6 124 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 颜色值将线条颜色更改为蓝绿色。使用 title
、xlabel
和 ylabel
函数为图形添加标题和轴标签。
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')
指定线图的坐标区
从 R2019b 开始,您可以使用 tiledlayout
和 nexttile
函数显示分块绘图。调用 tiledlayout
函数以创建一个 2×1 分块图布局。调用 nexttile
函数创建一个坐标区对象,并将该对象返回为 ax1
。通过将 ax1
传递给 plot
函数来创建顶部绘图。通过将坐标区传递给 title
和 ylabel
函数,为图添加标题和 y 轴标签。重复该过程以创建底部绘图。
% Create data and 2-by-1 tiled chart layout
x = linspace(0,3);
y1 = sin(5*x);
y2 = sin(15*x);
tiledlayout(2,1)% Top plot
ax1 = nexttile;
plot(ax1,x,y1)
title(ax1,'Top Plot')
ylabel(ax1,'sin(5x)')% Bottom plot
ax2 = nexttile;
plot(ax2,x,y2)
title(ax2,'Bottom Plot')
ylabel(ax2,'sin(15x)')
创建并修改线条
将 x
定义为 100 个介于和之间的线性间隔值。将 y1
和 y2
定义为 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
- y 值
标量 | 向量 | 矩阵
y 值,指定为标量、向量或矩阵。要根据特定的 x 值绘图,还必须指定 X
。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
X
- x 值
标量 | 向量 | 矩阵
x 值,指定为标量、向量或矩阵。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
LineSpec
- 线型、标记和颜色
字符向量 | 字符串
线型、标记和颜色,指定为包含符号的字符向量或字符串。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。
示例: '--or'
是带有圆形标记的红色虚线
线型 | 说明 |
---|---|
- | 实线(默认) |
-- | 虚线 |
: | 点线 |
-. | 点划线 |
标记 | 说明 |
---|---|
o | 圆圈 |
+ | 加号 |
* | 星号 |
. | 点 |
x | 叉号 |
s | 方形 |
d | 菱形 |
^ | 上三角 |
v | 下三角 |
> | 右三角 |
< | 左三角 |
p | 五角形 |
h | 六角形 |
颜色 | 说明 |
---|---|
| 黄色 |
| 品红色 |
| 青蓝色 |
| 红色 |
| 绿色 |
| 蓝色 |
| 白色 |
| 黑色 |
ax
- 目标坐标区
Axes
对象 | PolarAxes
对象 | GeographicAxes
对象
目标坐标区,指定为 Axes
对象、PolarAxes
对象或 GeographicAxes
对象。如果不指定坐标区或当前坐标区是笛卡尔坐标区,plot
函数将使用当前坐标区。要在极坐标区上绘图,请指定 PolarAxes
对象作为第一个输入参数,或者使用 polarplot
函数。要在地理坐标区上绘图,请指定 GeographicAxes
对象作为第一个输入参数,或者使用 geoplot
函数。
名称-值对组参数
指定可选的、以逗号分隔的 Name,Value
对组参数。Name
为参数名称,Value
为对应的值。Name
必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN
所示。
示例: 'Marker','o','MarkerFaceColor','red'
此处列出的图形线条属性只是一个子集。有关完整列表,请参阅 Line 属性。
'Color'
- 线条颜色
[0 0.4470 0.7410]
(默认) | RGB 三元组 | 十六进制颜色代码 | 'r'
| 'g'
| 'b'
| ...
线条颜色,指定为 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' |
示例: 'blue'
示例: [0 0 1]
示例: '#0000FF'
'LineStyle'
- 线型
'-'
(默认) | '--'
| ':'
| '-.'
| 'none'
线型,指定为下表中列出的选项之一。
线型 | 说明 | 表示的线条 |
---|---|---|
'-' | 实线 |
|
'--' | 虚线 |
|
':' | 点线 |
|
'-.' | 点划线 |
|
'none' | 无线条 | 无线条 |
'LineWidth'
- 线条宽度
0.5
(默认) | 正值
线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。
'Marker'
- 标记符号
'none'
(默认) | 'o'
| '+'
| '*'
| '.'
| 'x'
| ...
标记符号,指定为下表中的标记之一。默认情况下,图形线条没有标记。通过指定标记符号沿该线条上的每个数据点添加标记。
值 | 说明 |
---|---|
'o' | 圆圈 |
'+' | 加号 |
'*' | 星号 |
'.' | 点 |
'x' | 叉号 |
'square' 或 's' | 方形 |
'diamond' 或 'd' | 菱形 |
'^' | 上三角 |
'v' | 下三角 |
'>' | 右三角 |
'<' | 左三角 |
'pentagram' 或 'p' | 五角星(五角形) |
'hexagram' 或 'h' | 六角星(六角形) |
'none' | 无标记 |
示例: 'Marker','+'
示例: 'Marker','diamond'
'MarkerIndices'
- 要显示标记的数据点的索引
1:length(YData)
(默认) | 正整数向量 | 正整数标量
要显示标记的数据点的索引,指定为正整数向量。如果不指定索引,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)
在第五个数据点显示一个正方形标记。
'MarkerEdgeColor'
- 标记轮廓颜色
'auto'
(默认) | RGB 三元组 | 十六进制颜色代码 | 'r'
| 'g'
| 'b'
| ...
标记轮廓颜色,指定为 'auto'
、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认值 'auto'
使用与 Color
属性相同的颜色。
对于自定义颜色,请指定 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' |
'MarkerFaceColor'
- 标记填充颜色
'none'
(默认) | 'auto'
| RGB 三元组 | 十六进制颜色代码 | 'r'
| 'g'
| 'b'
| ...
标记填充颜色,指定为 'auto'
、RGB 三元组、十六进制颜色代码、颜色名称或短名称。'auto'
选项使用与父坐标区的 Color
属性相同的颜色。如果您指定 'auto'
,并且坐标区图框不可见,则标记填充颜色为图窗的颜色。
对于自定义颜色,请指定 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' |
'MarkerSize'
- 标记大小
6
(默认) | 正值
标记大小,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。
'DatetimeTickFormat'
- datetime
刻度标签的格式
字符向量 | 字符串
datetime
刻度标签的格式,指定为以逗号分隔的对组,该对组由 'DatetimeTickFormat'
和一个包含日期格式的字符向量或字符串组成。可使用字母 A-Z
和 a-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
不是图形线条属性。创建绘图时,必须使用名称-值对组参数设置刻度格式。或者,使用 xtickformat
和 ytickformat
函数设置格式。
日期时间标尺的 TickLabelFormat
属性存储格式。
'DurationTickFormat'
- duration
刻度标签的格式
字符向量 | 字符串
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
不是图形线条属性。创建绘图时,必须使用名称-值对组参数设置刻度格式。或者,使用 xtickformat
和 ytickformat
函数设置格式。
持续时间标尺的 TickLabelFormat
属性存储格式。
输出参数
h
- 一个或多个图形线条对象
标量 | 向量
一个或多个图形线条对象,以标量或向量的形式返回。这些是唯一标识符,可以用来查询和修改特定图形线条的属性。有关属性列表,请参阅 Line 属性。
提示
-
使用
NaN
和Inf
值将行断开。例如,以下代码绘制前两个元素,跳过第三个元素,并使用最后两个元素绘制另一线条:plot([1,2,NaN,4,5])
-
plot
基于坐标区的ColorOrder
和LineStyleOrder
属性选用颜色和线型。plot
先对第一种线型依序使用每种颜色,直至用尽。然后,再对下一个线型依序使用每种颜色,以此类推。从 R2019b 开始,通过设置坐标区的
ColorOrder
或LineStyleOrder
属性,可以在绘图后更改颜色和线型。您也可以调用colororder
函数来更改图窗中所有坐标区的色序。