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
中数据对每个值索引的二维线图。
- 如果
是向量,x 轴的刻度范围是从 1 至Y
。length(Y)
- 如果
是矩阵,则Y
函数绘制plot
中各列对其行号的图。x 轴的刻度范围是从 1 到Y
的行数。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×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 颜色值将线条颜色更改为蓝绿色。使用
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 值
标量 | 向量 | 矩阵
y 值,指定为标量、向量或矩阵。要根据特定的 x 值绘图,还必须指定
X
。
数据类型:
single
|
double
|
int8
|
int16
|
int32
|
int64
|
uint8
|
uint16
|
uint32
|
uint64
|
categorical
|
datetime
|
duration
X
X
- x 值
标量 | 向量 | 矩阵
x 值,指定为标量、向量或矩阵。
数据类型:
single
|
double
|
int8
|
int16
|
int32
|
int64
|
uint8
|
uint16
|
uint32
|
uint64
|
categorical
|
datetime
|
duration
LineSpec
LineSpec
- 线型、标记和颜色
字符向量 | 字符串
线型、标记和颜色,指定为包含符号的字符向量或字符串。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。
示例:
'--or'
是带有圆形标记的红色虚线
线型 | 说明 |
---|---|
| 实线(默认) |
| 虚线 |
| 点线 |
| 点划线 |
标记 | 说明 |
---|---|
| 圆圈 |
| 加号 |
| 星号 |
| 点 |
| 叉号 |
| 方形 |
| 菱形 |
| 上三角 |
| 下三角 |
| 右三角 |
| 左三角 |
| 五角形 |
| 六角形 |
颜色 | 说明 |
---|---|
| 黄色 |
| 品红色 |
| 青蓝色 |
| 红色 |
| 绿色 |
| 蓝色 |
| 白色 |
| 黑色 |
ax
- 目标坐标区 Axes
对象 | PolarAxes
对象 | GeographicAxes
对象
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'
| ...
'Color'
[0 0.4470 0.7410]
'r'
'g'
'b'
线条颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。
对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。
- RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
范围内,例如[0,1]
。[0.4 0.6 0.7]
- 十六进制颜色代码是字符向量或字符串标量,以井号 (
) 开头,后跟三个或六个十六进制数字,范围可以是 到#
。这些值不区分大小写。因此,颜色代码F
与'#FF8800'
、'#ff8800'
与'#F80'
是等效的。'#f80'
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 MATLAB® 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
| | |
| | |
| | |
| | |
| | |
| | |
| |
示例:
'blue'
示例:
[0 0 1]
示例:
'#0000FF'
'LineStyle'
- 线型 '-'
(默认) | '--'
| ':'
| '-.'
| 'none'
'LineStyle'
'-'
'--'
':'
'-.'
'none'
线型,指定为下表中列出的选项之一。
线型 | 说明 | 表示的线条 |
---|---|---|
| 实线 | |
| 虚线 | |
| 点线 | |
| 点划线 | |
| 无线条 | 无线条 |
'LineWidth'
- 线条宽度 0.5
(默认) | 正值
'LineWidth'
0.5
线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。
'Marker'
- 标记符号 'none'
(默认) | 'o'
| '+'
| '*'
| '.'
| 'x'
| ...
'Marker'
'none'
'o'
'+'
'*'
'.'
'x'
标记符号,指定为下表中的标记之一。默认情况下,图形线条没有标记。通过指定标记符号沿该线条上的每个数据点添加标记。
值 | 说明 |
---|---|
| 圆圈 |
| 加号 |
| 星号 |
| 点 |
| 叉号 |
或 | 方形 |
或 | 菱形 |
| 上三角 |
| 下三角 |
| 右三角 |
| 左三角 |
或 | 五角星(五角形) |
或 | 六角星(六角形) |
| 无标记 |
示例:
'Marker','+'
示例:
'Marker','diamond'
'MarkerIndices'
- 要显示标记的数据点的索引 1:length(YData)
(默认) | 正整数向量 | 正整数标量
'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'
| ...
'MarkerEdgeColor'
'auto'
'r'
'g'
'b'
标记轮廓颜色,指定为
'auto'
、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认值
'auto'
使用与
Color
属性相同的颜色。
对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。
- RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
范围内,例如[0,1]
。[0.4 0.6 0.7]
- 十六进制颜色代码是字符向量或字符串标量,以井号 (
) 开头,后跟三个或六个十六进制数字,范围可以是 到#
。这些值不区分大小写。因此,颜色代码F
与'#FF8800'
、'#ff8800'
与'#F80'
是等效的。'#f80'
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
| | |
| | |
| | |
| | |
| | |
| | |
| |
'MarkerFaceColor'
- 标记填充颜色 'none'
(默认) | 'auto'
| RGB 三元组 | 十六进制颜色代码 | 'r'
| 'g'
| 'b'
| ...
'MarkerFaceColor'
'none'
'auto'
'r'
'g'
'b'
标记填充颜色,指定为
'auto'
、RGB 三元组、十六进制颜色代码、颜色名称或短名称。
'auto'
选项使用与父坐标区的
Color
属性相同的颜色。如果您指定
'auto'
,并且坐标区图框不可见,则标记填充颜色为图窗的颜色。
对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。
- RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
范围内,例如[0,1]
。[0.4 0.6 0.7]
- 十六进制颜色代码是字符向量或字符串标量,以井号 (
) 开头,后跟三个或六个十六进制数字,范围可以是 到#
。这些值不区分大小写。因此,颜色代码F
与'#FF8800'
、'#ff8800'
与'#F80'
是等效的。'#f80'
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
| | |
| | |
| | |
| | |
| | |
| | |
| |
'MarkerSize'
- 标记大小 6
(默认) | 正值
'MarkerSize'
6
标记大小,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。
'DatetimeTickFormat'
- datetime
'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 的格式化输出示例。
的值 | 示例 |
---|---|
| |
| |
| |
| |
| |
| |
| |
有关有效字母标识符的完整列表,请参阅日期时间数组的
Format
属性。
DatetimeTickFormat
不是图形线条属性。创建绘图时,必须使用名称-值对组参数设置刻度格式。或者,使用
xtickformat
和
ytickformat
函数设置格式。
日期时间标尺的
TickLabelFormat
属性存储格式。
'DurationTickFormat'
- duration
'DurationTickFormat'
duration
刻度标签的格式
字符向量 | 字符串
duration
刻度标签的格式,指定为以逗号分隔的对组,该对组由
'DurationTickFormat'
和一个包含持续时间格式的字符向量或字符串组成。
如果未为
'DurationTickFormat'
指定值,则
plot
将基于坐标轴范围自动优化和更新刻度标签。
要将持续时间显示为包含小数部分的单个数字,例如 1.234 小时,请指定下表中的值之一。
的值 | 说明 |
---|---|
| 精确定长年的数目。固定长度的一年等于 365.2425 天。 |
| 精确定长天的数目。固定长度的一天等于 24 小时。 |
| 小时数 |
| 分钟数 |
| 秒数 |
示例:
'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
h
- 一个或多个图形线条对象
标量 | 向量
一个或多个图形线条对象,以标量或向量的形式返回。这些是唯一标识符,可以用来查询和修改特定图形线条的属性。有关属性列表,请参阅 Line 属性。
提示
- 使用
和NaN
值将行断开。例如,以下代码绘制前两个元素,跳过第三个元素,并使用最后两个元素绘制另一线条:Inf
plot([1,2,NaN,4,5])
-
基于坐标区的plot
和ColorOrder
属性选用颜色和线型。LineStyleOrder
plot
先对第一种线型依序使用每种颜色,直至用尽。然后,再对下一个线型依序使用每种颜色,以此类推。
从 R2019b 开始,通过设置坐标区的
或ColorOrder
属性,可以在绘图后更改颜色和线型。您也可以调用LineStyleOrder
函数来更改图窗中所有坐标区的色序。colororder