文章目录
1. plot(X,Y)
X和Y可以为标量、向量或矩阵。
创建Y中数据对X中对应值的二维线图
说明:
- 1.1 若X和Y均为向量,则要求它们的长度必须相同,plot函数绘制Y对X的图。
%%%%%示例1%%%%%
x=[0,1,2,3,4,5];
y=[0,5,6,9,4,0];
plot(x,y);
grid on;
%%%%%示例2%%%%%
x=0:pi/100:2*pi; %将x创建为由0和2π之间的线性间隔值组成的向量,各值之间递增量为π/100,可以计算出向量x有201个元素
y=sin(x); %将y创建为x的正弦值,那么y也是一个向量,且大小与x相等
plot(x,y);
grid on;
%%%%%示例3:绘制圆形%%%%%
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;
- 1.2 若X和Y均为矩阵,则它们的大小必须相同,plot函数绘制Y的列对X的列的图。
%%%%%示例%%%%%
x=[0,1,2;3,4,5]; %x为2行3列的矩阵
y=[0,7,8;9,4,0]; %y也是2行3列的矩阵,plot绘制y列对x列的图,那么y有几列,就会生成几条曲线
plot(x,y);
legend('第一列','第二列','第三列');
grid on;
- 1.3 若X或Y中的一个是向量而另一个是矩阵,则矩阵的各维中必须有一维与向量的长度相等。
如果矩阵的行数等于向量的长度,则plot函数绘制矩阵中的每一列对向量的图;
如果矩阵的列数等于向量的长度,则plot函数绘制矩阵中的每一行对向量的图;
如果矩阵为方阵,则该函数绘制每一列对向量的图。
%%%%%示例1%%%%%
x=[0,1,2]; %x为长度为3的向量
y=[0,7,8;9,2,0]; %y为2行3列的矩阵,y的列数等于向量x的长度,那么plot绘制y列对x的图,共生成2条曲线
plot(x,y);
legend('第一行','第二行');
grid on;
%%%%%示例2%%%%%
x=[0,1,2];
y=[0,7,8;9,2,0];
plot(y,x); %相对于示例1稍稍做了变动,绘制x对y的图,y相当于横坐标取值,x为纵坐标取值,绘制结果为2条曲线
legend('第一行','第二行');
grid on;
%%%%%示例3%%%%%
x=[0,1,2];
y=[0,7,8;9,2,0;7,4,6]; %y为3×3的矩阵,plot函数绘制每一列对向量x的图
plot(x,y);
legend('第一列','第二列','第三列');
grid on;
- 1.4 若X或Y之一为标量,而另一个为标量或向量,注意另一个不能为矩阵(会报错),则plot函数绘制离散点,但是要查看这些点,必须指定标记符号。
%%%%%示例1:x,y均为标量%%%%%
x=1;
y=2;
plot(x,y,'*');
grid on;
%%%%%示例1:x为向量,y为标量%%%%%
x=[1,2,3];
y=2;
plot(x,y,'o');
grid on;
2. plot(X,Y,LineSpec)
创建Y中数据对X中对应值的二维线图并设置线型、标记符号和颜色
LineSpec–线型、标记、颜色,可以是包含符号的字符向量或字符串,可以按任意顺序显示,不需要同时指定所有三个特征。
线型LineStyle | 说明 |
---|---|
’ - ’ | 实线(默认) |
’ - - ’ | 虚线 |
’ : ’ | 点线 |
’ -. ’ | 点划线 |
标记 | 说明 |
---|---|
‘o’ | 圆圈 |
‘+’ | 加号 |
‘*’ | 星号 |
‘.’ | 点 |
‘×’ | 叉号 |
‘square’或’s’ | 方形 |
‘diamond’或’d’ | 菱形 |
‘^’ | 上三角 |
‘v’ | 下三角 |
‘>’ | 右三角 |
‘<’ | 左三角 |
‘pentagram’或’p’ | 五角形 |
‘hexagram’或’h’ | 六角形 |
颜色 | 说明 |
---|---|
y | 黄色 |
m | 品红色 |
c | 青蓝色 |
r | 红色 |
g | 绿色 |
b | 蓝色 |
w | 白色 |
k | 黑色 |
RGB三元组 | 例如 [0.4 0.6 0.7] |
十六进制颜色代码 | 例如 #0072BD |
3. plot(X1,Y1,···,Xn,Yn)
绘制多个X、Y对组的图,所有线条都使用相同的坐标区。
x=linspace(-2*pi,2*pi);
y1=sin(x);
y2=cos(x);
plot(x,y1,x,y2);
4. plot(X1,Y1,LineSpec1,···,Xn,Yn,LineSpec2)
x=linspace(-2*pi,2*pi);
y1=sin(x);
y2=sin(x-0.5);
y3=sin(x-1);
%第一条正弦曲线使用绿色线条,不带标记;
%第二条正弦曲线使用蓝色虚线,带圆形标记;
%第三条正弦曲线只使用青蓝色星号标记。
plot(x,y1,'g',x,y2,'b--o',x,y3,'c*');
5. plot(Y)
创建Y中数据对每个值索引的二维线图
说明:
- 5.1 若Y为向量,x轴的刻度范围是从1至length(Y)。
- 5.2 若Y为矩阵,则plot函数绘制Y中各列对其行号的图,x轴的刻度范围是从1到Y的行数。
Y=magic(4);
plot(Y);
- 5.3 若Y为复数,则plot函数绘制Y的虚部对Y的实部的图,使得plot(Y)等效于plot(real(Y),imag(Y))。
6. plot(Y,LineSpec)
设置线型、标记符号和颜色
7. plot(__,Name,Value)
使用一个或多个Name,Value对组参数指定线条属性。可以将此选项与前面语法中的任何输入参数组合一起使用,名称-值对组设置将应用于绘制的所有线条。
名称-值对组参数:
指定可选的、以逗号分隔的Name,Value对组参数。Name为参数名称,Value为对应的值,Name必须放在引号中。
x=-pi:pi/10:pi;
y=sin(x);
%创建线图并使用LineSpec选项指定带方形标记的绿色虚线;
%使用Name,Value对组来指定线宽、标记大小和标记颜色;
%将标记边颜色设置为蓝色,并使用RGB颜色值设置标记面颜色。
plot(x,y,'--gs','LineWidth',2,'MarkerSize',10, 'MarkerEdgeColor','b', 'MarkerFaceColor',[1,0.5,0.5]);
Name | 说明 |
---|---|
‘LineWidth’ | 线条宽度,默认为0.5 |
‘MarkerSize’ | 标记大小,默认为6 |
‘MarkerEdgeColor’ | 标记轮廓颜色 |
‘MarkerFaceColor’ | 标记填充颜色 |
局部标记方法:
‘MarkerIndices’ | 要显示标记的数据点的索引,指定为正整数向量,如果不指定索引,MATLAB将在每个数据点显示一个标记 |
---|---|
示例: | |
plot(x,y,’-o’,‘MarkerIndices’,[1 5 20]); | 在第一、第五和第十个数据点处显示圆形标记 |
示例: | |
plot(x,y,’-×’,‘MarkerIndices’,1:3:length(y)); | 每隔三个数据点显示一个交叉标记 |
示例: | |
plot(x,y,‘Marker’,‘square’,‘MarkerIndices’,5); | 在第五个数据点显示一个正方形标记 |
使用圆点表示法可以修改或设置属性:
x=-pi:pi/10:pi;
y=sin(x);
z=plot(x,y,'--gs','LineWidth',2,'MarkerSize',10, 'MarkerEdgeColor','b', 'MarkerFaceColor',[1,0.5,0.5]);
% h=plot();返回由图形线条对象组成的列向量。在创建特定的图形线条后,可以使用h修改其属性
z.LineWidth=1; %线宽更改为1
z.Marker='d'; %方形标记更改为菱形标记
8. plot(ax,__)
将在由ax指定的坐标区中,而不是在当前坐标区(gca)中创建线图。选项ax可以位于前面的语法中的任何参数组合之前。
ax-目标坐标区
(1)指定为Axes对象、PolarAxes对象(极坐标区绘图,或者使用polarplot函数)或者GeographicAxes对象(地理坐标区绘图,或者使用geoplot函数);
(2)如果不指定坐标区或者当前坐标区是笛卡尔坐标区,plot函数将使用当前坐标区。
%%********************************************************%%
% 使用tiledlayout和nexttile函数显示分块图 %
% 调用tiledlayout函数以创建一个2×1分块图布局 %
% 调用nexttile函数创建一个坐标区对象,并将该对象返回为ax1 %
%%********************************************************%%
x=linspace(0,3);
y1=sin(5*x);
y2=sin(15*x);
tiledlayout(2,1);
ax1=nexttile;
plot(ax1,x,y1);
title(ax1,'sin(5x)');
ax2=nexttile;
plot(ax2,x,y2);
title(ax2,'sin(15x)');
9. 一点补充
函数名称 | 效果 |
---|---|
title | 添加标题 |
xlabel | 添加x轴标签 |
ylabel | 添加y轴标签 |
xlim | 设置或查询x坐标轴范围 |
ylim | 设置或查询y坐标轴范围 |
grid on | 显示网格线 |
hold on | 添加新绘图时保留当前绘图 |
legend | 为绘制的图形创建一个带有描述性标签的图例 |
yyaxis | 创建具有两个y轴的图 |
loglog | 双对数刻度图,在x轴和y轴上应用对数刻度来绘制x和y坐标 |
ax=gca | 返回当前图窗的当前坐标区或图 |
axis | 对坐标轴进行一定的操作 |
plot3 | 绘制三维点或线图 |