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);

效果如下:

image.png


多图绘图

使用的是 subplot(m,n,p) 函数, 其中 m n 为将屏幕分为 m 行和 n 列。p 为将图片放置到第几个位置。

subplot(1,2,1);
plot(x,y);
subplot(1,2,2);
plot(x,y);

效果如下:
image.png

其他命令:

**调用格式 ** 说明
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);

效果如下:
image.png


绘图标记

使用的仍然是 plot(x,y,s),其中 s 为标记,具体请查看相关文档标注。

plot(x,y1,'r:+');% 绘制一个红色 +号 点线形式

效果如下:
image.png

字符 色彩 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);

效果如下:
image.png

多函数标注

使用的还是 plot(x1,y1,s1,x2,y2,s2,...) 与之前用法相同,不再赘述

plot(x,y1,'ro:',x,y2,'b-.*');

效果图:
image.png

一元函数绘图

虽然说使用 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)');

效果图:
image.png

可以看出,使用 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() 后面

效果图:
image.png

填充图形

使用的 fill(x,y,s) 命令。s 为颜色。

fill(x,y,'r');

效果图:
image.png

为什么是这么个奇形怪状的我也不太清楚....

标题以及轴名称

使用的是 title xlabel ylabel 函数,能够对标题 $X/Y$ 轴进行标注,而且支持 LaTeX 公式

plot(x,y);
title('正弦函数');
xlabel('\phi');
ylabel('sin(\phi)');

效果图:
image.png

图形标注

使用 text(x,y,'text') 命令。
效果图:
image.png

图例标注

使用 legend() 函数。

x=0:0.1:10;
y1=sin(x);
y2=cos(x);
plot(x,y1,x,y2);
legend('sin(\phi)','cos(\phi)');

效果图:
image.png

分割线控制

使用的是 grid on 命令,能够开启背景网格。

x=0:0.1:20;
y=sin(x);
plot(x,y);
grid on;

效果图:
image.png

示例代码

% 图形标注
% 前期准备
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;

posted @   陈皮皮-z  阅读(136)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示