MATLAB二维绘图
目录
1 绘图函数介绍
二维绘图常用的函数就是plot函数,基本调用格式如下:
% x,y 横纵坐标
% s 用于表示点型、颜色与线型
plot(x,y,'s')
1.1 点型绘制
. | 实心点 |
* | 米字符 |
+ | 十字符 |
x | 叉字符 |
o | 空心圆圈 |
s | 方块符 |
d | 菱形符 |
p | 五角星符 |
h | 六角星符 |
< | 向左三角符 |
> | 向右三角符 |
示例代码:
x = -10:0.1:10; %x轴
y = 2*x+2; %y轴
plot(x,y,'x'); %绘图,叉字符
运行效果如下(figure图像坐标已拉伸放大):
1.2 颜色绘制
b | 蓝色 |
g | 绿色 |
r | 红色 |
c | 青色 |
m | 紫红 |
y | 黄色 |
k | 黑色 |
w | 白色 |
示例代码:
x = -10:0.1:10; %x轴
y = 2*x+2; %y轴
plot(x,y,'xr'); %绘图,叉字符,红色
运行效果如下:
1.3 线型绘制
- | 细实线 |
: | 点线 |
-. | 点画线 |
-- | 虚线 |
示例代码:
x = -10:0.1:10; %x轴
y = 2*x+2; %y轴
plot(x,y,'xr:'); %绘图,叉字符,红色,点线
运行效果如下:
2 坐标轴状态与标识
2.1 坐标轴的控制
axis on | 显示坐标轴 |
axis off | 取消坐标轴 |
axis auto | 使用默认设置 |
axis xy | 直角坐标系,原点位于左下方 |
axis ij | 矩阵式坐标系,原点位于左上方 |
axis normal | 矩形坐标系 |
axis square | 正方形坐标系 |
axis equal | 横纵坐标等长刻度 |
axis([xmin,xmax,ymin,ymax]) | 设定横纵坐标范围 |
xlim | 设定x轴范围 |
ylim | 设定y轴范围 |
示例代码:
x = -10:0.1:10; %x轴
y = 2*x+2; %y轴
plot(x,y,'xr:'); %绘图,叉字符,红色,点线
axis ([-15,15,-30,30]); %x轴范围从-15到15,y轴范围从-30到30
运行效果如下:
【注意】:MATLAB中默认画图时采用的是矩形坐标系,因此在绘制圆形时需选用横纵坐标等长的形式
theta = [0:0.001:2*pi]; %角频率范围
x = cos(theta);
y = sin(theta);
plot(x,y); %绘制图形
如上所示,运行效果为一个椭圆,并非我们所需要的正圆。
对代码稍作修改(添加axis equal):
theta = [0:0.001:2*pi]; %角频率范围
x = cos(theta);
y = sin(theta);
plot(x,y); %绘制图形
axis equal
再运行:
效果为我们所需要的正圆
2.2 网格线、轴线分度以及标识
grid on | 显示坐标轴分度网格线 |
grid off | 隐藏坐标轴分度网格线 |
xticks(X) | X为数值数组,指定x轴坐标分度位置 |
yticks(Y) | Y为数值数组,指定y轴坐标分度位置 |
xticklabels(XS) | XS为字符串元胞数组,用于x轴分度的标识 |
yticklabels(YS) | YS为字符串元胞数组,用于y轴分度的标识 |
示例代码:
x = -10:0.1:10; %x轴
y = 2*x+2; %y轴
plot(x,y,'xr:'); %绘图,叉字符,红色,点线
xticks([-10,-5,0,5,10]); %取x轴分度位置
yticks([-15,0,15,20]); %取y轴分度位置
运行效果如下:
此时坐标轴只显示所指定的坐标
2.3 图形标识命令
title | 图形窗顶部加图名 |
xlabel | 横坐标轴名 |
ylabel | 纵坐标轴名 |
text(x,y,'s') | 在(x,y)处写字符注释 |
legend | 生成图例 |
示例代码:
x = -10:0.1:10; %x轴
y = 2*x+2; %y轴
plot(x,y,'xr:'); %绘图,叉字符,红色,点线
title('y=nx+2'); %显示标题
xlabel('x'); %显示x轴名称
ylabel('y'); %显示y轴名称
text(0,2,'2'); %在(0,2)处注释2
legend('y=2x+2'); %显示图例
运行效果如下:
3 多次叠绘与多子图
3.1 多次叠绘
方法一:调用plot(x1,y1,x2,y2,....),MATLAB可以自动以不同颜色绘制不同曲线
示例代码:
x = -10:0.1:10; %x轴
y1 = 2*x+2; %y1
y2 = 4*x+1; %y2
plot(x,y1,x,y2); %绘图
运行效果如下:
方法二: 使用hold on命令,开启“保持”,可以保持图形不被覆盖
示例代码:
x = -10:0.1:10; %x轴
y1 = 2*x+2; %y1
y2 = 4*x+1; %y2
plot(x,y1);
hold on;
plot(x,y2);
运行效果与方法一一致
3.2 多子图
在一个图形窗中绘制多个子图,需要调用subplot(m,n,k)函数,m,n分别指子图的行数和列数,k是子图的编号,编号默认从左向右,从上到下依次编号
示例代码:
x = -10:0.1:10; %x轴
y1 = 2*x+2; %y1
y2 = 4*x+1; %y2
subplot(2,1,1);
plot(x,y1);
hold on;
subplot(2,1,2);
plot(x,y2);
运行效果如下:
var code = "d41b18e2-c489-42d0-8e67-d3d5f14a71a5"