matlab:二维绘图篇——plot绘图命令
目录
1.plot绘图命令
(1)plot(x)
实例——实验数据曲线
实例——窗口分割
实例——随机矩阵
(2).plot(x,y)
实例——摩擦系数变化曲线
(3)plot(x1,y1,x2,y2,...)
实例——正弦图形
实例——正弦余弦图形
(4)plot(x,y,s)
实例——数据点图形
实例——图形的重叠
实例——曲线属性的设置
实例——函数图形编辑
1.plot绘图命令
plot命令是最基本的绘图命令,也是最常用的一个绘图命令。当它执行时,系统会自动创建一个新的图形窗口。plot命令主要有以下几种格式:
(1)plot(x)
功能:
- 当x是实向量时,则绘出以该向量元素的下标为横坐标,以该向量元素的值为纵坐标的一条连续曲线;
- 当x是实矩阵时,按列绘制出每列元素值相对其下标的曲线,曲线数等于x的列数;
- 当x是复数矩阵时,按列分别绘制出以元素实部为横坐标,以元素虚部为纵坐标的多条曲线。
实例——实验数据曲线
>> x=[5 10 20 30 40 50 60 70 90 120];
y=[6 10 13 16 17 19 23 25 29 460];
plot(x,y)
实例——窗口分割
>> subplot(2,2,1)
subplot(2,2,2)
subplot(2,2,3)
subplot(2,2,4)
>>
实例——随机矩阵
>> a=rand(1,10);
b=rand(5,5);
subplot(1,2,1),plot(a)
subplot(1,2,2),plot(b)
(2).plot(x,y)
功能:
- 当x,y是同伟向量时,绘制以x为横坐标,y为纵坐标的曲线;
- 当x是向量,y是有一维与x等维的矩阵时,绘制出多根不同颜色的曲线,曲线数等于y矩阵的另一维数,x作为这些曲线的横坐标;
- 当x是矩阵,y是向量时,同上,但以y为横坐标;
- 当x,y是同维矩阵时,以x对应的列元素为横坐标,以y对应的列元素为纵坐标分别绘制曲线,曲线数等于矩阵的列数;
实例——摩擦系数变化曲线
>> x=0:0.2:1;
y=[0 0 0 0;0.58 0.31 0.18 0.08;0.83 0.56 0.36 0.19;1.14 0.89 0.62 0.30;1.56 1.23 0.78 0.36;2.08 1.52 0.99 0.49];
plot(x,y)
(3)plot(x1,y1,x2,y2,...)
这个函数格式的功能是绘制多条曲线。在这个用法中,(xi,yi)必须是成对出现的,上面的命令等价于助词执行plot(xi,yi)命令,其中i=1,2,....
实例——正弦图形
% 生成从 0 到 2π 的 100 个等间距点的向量 x
% linspace 函数用于生成线性间距的向量,第一个参数是起始值,第二个参数是终止值,第三个参数是生成点的数量
x = linspace(0, 2*pi, 100);
% 计算 y1 的值,对 x 中的每个元素取正弦值
y1 = sin(x);
% 计算 y2 的值,对 x 中的每个元素加上 π/4 后再取正弦值
% 这相当于将 y1 曲线向左平移了 π/4 个单位
y2 = sin(x + pi/4);
% 计算 y3 的值,对 x 中的每个元素减去 π/4 后再取正弦值
% 这相当于将 y1 曲线向右平移了 π/4 个单位
y3 = sin(x - pi/4);
% 绘制图形
% plot 函数用于绘制二维曲线,这里将 x 作为横坐标,y1、y2、y3 分别作为纵坐标进行绘制
% 这样就会在同一个图形窗口中绘制出三条不同相位的正弦函数曲线
plot(x, y1, x, y2, x, y3);
实例——正弦余弦图形
在同一个图上画出y=sinx,y=5cos(x-Π/4)的图像。
x1=linspace(0,2*pi,100);
x2=x1-pi/4;
y1=sin(x1);
y2=5*cos(x2);
plot(x,y1,x,y2,x,y3)
(4)plot(x,y,s)
x,y为向量或矩阵,s为单引号标记的字符串,用来设置所画数据点的类型,大小,颜色以及数据点之间连线的类型,粗细,颜色等。
字符 | 色彩 | RGB值 |
b | 蓝色 | 001 |
g | 绿色 | 010 |
r | 红色 | 100 |
c | 青色 | 011 |
m | 品红 | 101 |
y | 黄色 | 110 |
k | 黑色 | 000 |
w | 白色 | 111 |
- | 实线(默认) |
-- | 虚线 |
: | 点线 |
-. | 点画线 |
实例——数据点图形
字符 | 数据点 | 字符 | 数据点 |
+ | 加号 | > | 向右三角形 |
o | 小圆圈 | < | 向左三角形 |
* | 星号 | s | 正方形 |
. | 实点 | h | 正六角星 |
x | 交叉号 | p | 正五角星 |
d | 棱形 | v | 向下三角形 |
^ | 向上三角形 |
任意描一些点,熟悉plot命令参数的用法。
% 生成从 0 到 2π 的向量 x,步长为 π/10
% 这样就创建了一个包含一系列等间距点的向量
x = 0:pi/10:2*pi;
% 计算 y1 的值,对 x 中的每个元素取正弦值
% 得到的 y1 是与 x 对应的正弦函数值向量
y1 = sin(x);
% 计算 y2 的值,对 x 中的每个元素取余弦值
% 得到的 y2 是与 x 对应的余弦函数值向量
y2 = cos(x);
% 计算 y3 的值,y3 与 x 相等,即 y = x 这个一次函数
% 得到的 y3 与 x 元素相同
y3 = x;
% 计算 y4 的值,对 x 中的每个元素进行平方操作
% 得到的 y4 是与 x 对应的二次函数值向量
y4 = x.^2;
% 开启图形保持模式
% 意味着后续的绘图命令会在同一个图形窗口中绘制,而不是覆盖之前的图形
hold on;
% 绘制 y1 关于 x 的曲线
% 'r*' 表示使用红色的星号标记绘制曲线
plot(x, y1, 'r*');
% 绘制 y2 关于 x 的曲线
% 'kp' 表示使用黑色的五角形标记绘制曲线
plot(x, y2, 'kp');
% 绘制 y3 关于 x 的曲线
% 'bd' 表示使用蓝色的菱形标记绘制曲线
plot(x, y3, 'bd');
% 关闭图形保持模式
% 之后的绘图命令将覆盖当前图形窗口中的内容
hold off;
实例——图形的重叠
% 定义一个整数 N,用于确定后续生成的角度序列的点数
N = 9;
% 生成从 0 到 2π 的等间距角度序列 t,步长为 2π/N
% 这样会生成一个包含 (N + 1) 个元素的向量,因为包含了起始点 0 和终止点 2π
t = 0:2*pi/N:2*pi;
% 计算 t 中每个角度对应的正弦值,存储在向量 x 中
x = sin(t);
% 计算 t 中每个角度对应的余弦值,存储在向量 y 中
y = cos(t);
% 将向量 t 重塑为一个 2 行,(N + 1)/2 列的矩阵 tt
% 重塑操作会按照列优先的顺序填充矩阵元素
tt = reshape(t, 2, (N + 1)/2);
% 对矩阵 tt 进行上下翻转操作
% 即第一行变为最后一行,最后一行变为第一行
tt = flipud(tt);
% 将矩阵 tt 转换为一个列向量
% 也就是将矩阵按列的顺序依次排列成一个向量
tt = tt(:);
% 计算重排后的角度序列 tt 中每个角度对应的正弦值,存储在向量 xx 中
xx = sin(tt);
% 计算重排后的角度序列 tt 中每个角度对应的余弦值,存储在向量 yy 中
yy = cos(tt);
% 绘制由向量 x 和 y 构成的曲线
% 这里实际上绘制的是以 x 为横坐标,y 为纵坐标的点连接而成的曲线,通常是一个单位圆
plot(x, y);
% 开启图形保持模式
% 意味着后续的绘图命令会在当前图形窗口中继续绘制,而不会覆盖之前绘制的图形
hold on;
> N=9;
t=0:2*pi/N:2*pi;
x=sin(t);y=cos(t);
tt=reshape(t,2,(N+1)/2);
tt=flipud(tt);
tt=tt(:);
xx=sin(tt);yy=cos(tt);
plot(x,y)
hold on %打开保持命令
plot(xx,y)%未输入关闭命令,显示叠加的图
hold off
plot(xx,y)%关闭保持命令,单独显示图形
实例——曲线属性的设置
% 生成从 0 到 π 的向量 t,步长为 π/100
% t' 是对 t 进行转置,将其转换为列向量
t=(0:pi/100:pi)';
% 计算 y1 的值
% sin(t) 是对 t 中的每个元素取正弦值
% [1, -1] 是一个行向量
% sin(t)*[1,-1] 表示将 sin(t) 与 [1, -1] 进行矩阵乘法
% 最终 y1 是一个两列的矩阵,第一列是 sin(t),第二列是 -sin(t)
y1=sin(t)*[1,-1];
% 计算 y2 的值
% sin(t).*sin(9*t) 表示将 sin(t) 与 sin(9*t) 对应元素相乘
y2=sin(t).*sin(9*t);
% 生成从 0 到 π 的 10 个等间距点的向量 t3
t3=pi*(0:9)/9;
% 计算 y3 的值
% 对 t3 中的每个元素取正弦值,然后将 sin(t3) 与 sin(9*t3) 对应元素相乘
y3=sin(t3).*sin(9*t3);
% 绘制图形
% t,y1 表示以 t 为 x 轴,y1 为 y 轴进行绘图
% 'r:' 表示使用红色的点线
% t,y2 表示以 t 为 x 轴,y2 为 y 轴进行绘图
% '-bo' 表示使用蓝色的实心圆点和实线
plot(t,y1,'r:',t,y2,'-bo')
% 保持当前图形窗口,以便后续的绘图命令可以在同一窗口中绘制
hold on
% 绘制 t3 和 y3 的图形
% 's' 表示使用正方形标记
% 'MarkerSize',10 表示标记的大小为 10
% 'MarkerEdgeColor',[0,1,0] 表示标记的边缘颜色为绿色
% 'MarkerFaceColor',[1,0.8,0] 表示标记的填充颜色为橙色
plot(t3,y3,'s','MarkerSize',10,'MarkerEdgeColor',[0,1,0],'MarkerFaceColor',[1,0.8,0])
% 设置坐标轴的范围
% [0,pi,-1,1] 表示 x 轴范围从 0 到 π,y 轴范围从 -1 到 1
axis([0,pi,-1,1])
% 取消图形保持模式,后续的绘图命令将覆盖当前图形
hold off
% 再次绘制所有曲线
% 这里的绘图命令与前面的绘图命令重复
plot(t,y1,'r:',t,y2,'-bo',t3,y3,'s','MarkerSize',10,'MarkerEdgeColor',[0,1,0],'MarkerFaceColor',[1,0.8,0])
实例——函数图形

% 生成从 -π 到 π 的向量 x,步长为 π/10
x=-pi:pi/10:pi;
% 计算 y1 的值,对 sin(x) 的每个元素求指数
y1=exp(sin(x));
% 计算 y2 的值,对 cos(x) 的每个元素求指数
y2=exp(cos(x));
% 计算 y3 的值,对 sin(x) + cos(x) 的每个元素求指数
y3=exp(sin(x)+cos(x));
% 计算 y4 的值,对 sin(x) - cos(x) 的每个元素求指数
y4=exp(sin(x)-cos(x));
% 计算 y5 的值,对 sin(x) 和 cos(x) 对应元素相乘后每个元素乘以 0.2 再求指数
y5=0.2*exp(sin(x).*cos(x));
% 计算 y6 的值,对 sin(x) 和 cos(x) 对应元素相除后每个元素乘以 0.2 再求指数
y6=0.2*exp(sin(x).\cos(x));
% 绘制多个曲线
% 'b:' 表示蓝色的点线
% 'd-' 表示菱形标记和实线
% 'm>' 表示品红色的右箭头标记
% 'rh-' 表示红色的六边形标记和实线
% 'gh-' 表示绿色的六边形标记和实线
% 'bh-' 表示蓝色的六边形标记和实线
plot(x,y1,'b:',x,y2,'d-',x,y3,'m>',x,y4,'rh-',x,y5,'gh-',x,y6,'bh-');