MATLAB 绘图
MATLAB
在这里只介绍常用的命令,每一个命令和函数都有着很多重载,不可能每一个都仔细记录,所以多使用
help命令才是王道。
二维绘图
单一绘图
使用的是 Plot(x,y) 函数,其中 x 为自变量, y 为因变量,所以可以进行相应的函数绘图。
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(m,n,p) 函数, 其中 m n 为将屏幕分为 m 行和 n 列。p 为将图片放置到第几个位置。
subplot(1,2,1);
plot(x,y);
subplot(1,2,2);
plot(x,y);
效果如下:

其他命令:
| **调用格式 ** | 说明 |
|---|---|
subplot(m,n,p,'replace') |
删除 p 处的现有坐标区并创建新的坐标区 |
多函数绘图
使用的仍然是 plot(x1,y1,x2,y2,...) 函数。方法与上一样,不再赘述
x=0:0.1:10;
y1=sin(x);
y2=cos(x);
plot(x,y1,x,y2);
效果如下:

绘图标记
使用的仍然是 plot(x,y,s),其中 s 为标记,具体请查看相关文档标注。
plot(x,y1,'r:+');% 绘制一个红色 +号 点线形式
效果如下:

| 字符 | 色彩 | RGB 值 |
|---|---|---|
| b | 蓝色 | 001 |
| g | 绿色 | 010 |
| r | 红色 | 100 |
| c | 青色 | 011 |
| m | 品红 | 101 |
| y | 黄色 | 110 |
| b | 黑色 | 000 |
| w | 白色 | 111 |
| 线型符号 | 说明 | 线型符号 | 说明 |
|---|---|---|---|
| - | 实线 | : | 点线 |
| -- | 虚线 | -. | 点画线 |
| 字符 | 数据点 | 字符 | 数据点 |
|---|---|---|---|
| + | 加号 | > | 向右三角形 |
| o | 小圆圈 | < | 向左三角形 |
| * | 星号 | s | 正方形 |
| . | 实点 | h | 正六角星 |
| x | 交叉号 | p | 正五角星 |
| d | 菱形 | v | 向下三角形 |
| ^ | 向上三角形 |
图形保持
使用的是 hold on 命令,效果与多函数绘图一样。
plot(x,y1);
hold on;
plot(x,y2);
效果如下:

多函数标注
使用的还是 plot(x1,y1,s1,x2,y2,s2,...) 与之前用法相同,不再赘述
plot(x,y1,'ro:',x,y2,'b-.*');
效果图:

一元函数绘图
虽然说使用 plot(x,y) 可以进行一元函数的绘制,但是对于具有具体函数关系的函数图绘制更推荐使用 fplot(f) 进行绘制。
fplot(f) 中的 f 为函数句柄,在操作上要比 plot(x,y) 函数要麻烦一点,但绘制出来的效果会更好。
x=linspace(0.01,0.02,50);
y=sin(1./x);
subplot(2,1,1);
plot(x,y);
title('plot(x,y)');
subplot(2,1,2);
fplot(@(x)sin(1./x),[0.01,0.02]);%需要使用函数句柄
title('fplot(f)');
效果图:

可以看出,使用 fplot(f) 函数绘制的图像要更加贴近现实以及更加平滑。
非直角坐标系绘图
在直角坐标系绘图之外还有 极坐标系 半对数坐标系 双对数坐标系 双y轴坐标 等坐标系,不太常见,故不做介绍。
示例代码
% 前期准备
close all
clear
clc
%% 单一绘图 plot(x,y)
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(m,n,p)
subplot(1,2,1);
plot(x,y);
subplot(1,2,2);
plot(x,y);
%% 多函数绘图 plot(x1,y1,x2,y2,...)
x=0:0.1:10;
y1=sin(x);
y2=cos(x);
plot(x,y1,x,y2);
%% 绘图标记 plot(x,y,s) s为绘图的标记记号
plot(x,y1,'r:+');% 绘制一个红色 +号 点线形式
%% 图形保持 hold on
plot(x,y1);
hold on;
plot(x,y2);
%% 多函数标记 plot(x1,y1,s1,x2,y2,s2,...)
plot(x,y1,'ro:',x,y2,'b-.*');
%% 一元函数绘图 fplot(f) --- 更加平滑
x=linspace(0.01,0.02,50);
y=sin(1./x);
subplot(2,1,1);
plot(x,y);
title('plot(x,y)');
subplot(2,1,2);
fplot(@(x)sin(1./x),[0.01,0.02]);%需要使用函数句柄
title('fplot(f)');
图形标注
对于图形进行标注是一个很大的需求
坐标系和坐标轴
使用的是 axis([xmin,xmax,ymin,ymax]) 命令。将坐标轴的大小限制在一的范围之间。
x=0:0.1:20;
y=sin(x);
plot(x,y);
axis([0,10,-1.5,1.5]);% 需要在 plot() 后面
效果图:

填充图形
使用的 fill(x,y,s) 命令。s 为颜色。
fill(x,y,'r');
效果图:

为什么是这么个奇形怪状的我也不太清楚....
标题以及轴名称
使用的是 title xlabel ylabel 函数,能够对标题 $X/Y$ 轴进行标注,而且支持 LaTeX 公式!
plot(x,y);
title('正弦函数');
xlabel('\phi');
ylabel('sin(\phi)');
效果图:

图形标注
使用 text(x,y,'text') 命令。
效果图:

图例标注
使用 legend() 函数。
x=0:0.1:10;
y1=sin(x);
y2=cos(x);
plot(x,y1,x,y2);
legend('sin(\phi)','cos(\phi)');
效果图:

分割线控制
使用的是 grid on 命令,能够开启背景网格。
x=0:0.1:20;
y=sin(x);
plot(x,y);
grid on;
效果图:

示例代码
% 图形标注
% 前期准备
close all;
clear;
clc;
%% 坐标系和坐标轴 axis([xmin,xman,ymin,ymax,zmin,zmax])
x=0:0.1:20;
y=sin(x);
plot(x,y);
axis([0,10,-1.5,1.5]);% 需要在 plot() 后面
%% 填充图形 fill()
fill(x,y,'r');
%% 标题以及轴名称 title xlabel ylabel
plot(x,y);
title('正弦函数');
xlabel('\phi');
ylabel('sin(\phi)');
%% 图形标注 text(x,y,'text') 支持 LaTex公式
plot(x,y);
text(10,0.5,'sin(\pi/4)\rightarrow');
%% 图例标注 legend()
x=0:0.1:10;
y1=sin(x);
y2=cos(x);
plot(x,y1,x,y2);
legend('sin(\phi)','cos(\phi)');
%% 分隔线控制 grid
x=0:0.1:20;
y=sin(x);
plot(x,y);
grid on;
浙公网安备 33010602011771号