MATLABの基础绘图

图线的绘制与装饰

使用plot()函数绘制图线

在MATLAB中,使用plot()函数绘制图线,其语法为:

plot(x,y,'lineSpec')
  • x: 图线上点的x坐标
  • y: 图线上点的y坐标
  • LineSpec: 图线的线条设定,三个指定线型,标记符号颜色设定符组成一个字符串,设定符不区分先后.具体细节请参考官方文档.
给制不带线条的数据点

如果指定标记而不是线型,则将仅绘制标记。例如:

plot(x,y,'d')
线型设定符

您可以指明要显示的线型、标记类型和颜色,下表进行了详细介绍:

设定符线型
-实线(默认)
--虚线
:点线
-.点划线
标记设定符
设定符标记类型
+加号
o圆圈
*星号
.
x叉号
square’ 或 ‘s方形
diamond’ 或 ‘d菱形
^上三角
v下三角
>右三角
<左三角
pentagram’ 或 ‘p五角星(五角形)
hexagram’ 或 ‘h六角星(六角形)
颜色设定符
设定符颜色
r红色
g绿色
b蓝色
c青蓝色
m品红色
y黄色
k黑色
w白色

EXAMPLE

x=[0:pi/20:2*pi];
y=sin(x);
plot(x,y,':.r')

在这里插入图片描述

装饰图线

添加图例

  • 使用legend()函数为图片增加图例

    使用legend(label1, ..., labelN)函数可以为图片添加图例

    example1

    hold off
    x=0:0.5:4*pi;
    y=sin(x); h=cos(x); w=1./(1+exp(-x)); g=(1/(2*pi*2)^0.5).*exp((-1.*(x-2*pi).^2)./(2*2^2));
    plot(x,y,'bd-',   x,h,'gp:',   x,w,'ro-',   x,g,'c^-');		% 绘制多条图线
    legend('sin(x)', 'cos(x)', 'Sigmoid', 'Gauss function');	% 添加图例
    

在这里插入图片描述

添加标题和标签

  • 使用title()*label()为图片增加标题和标签

    example2

    x1=[4 16 64];
    x2=[4 16 64];
    y1=[60 229 907];
    y2=[33 126 482];
    plot(x1, y1,'-r.')
    hold on
    plot(x2, y2,'--pb')
    xlabel('光阑直径d的平方/mm^2');
    ylabel('I/10^{-11}A');
    %*代替x、y等等
    legend('波长435.8nm','波长546.1nm');
    title('饱和电流和入射光强的关系') 
    

在这里插入图片描述

添加注解

  • 使用text()annotation()为图片增加注解

    x = linspace(0,3);
    y = x.^3.*sin(x);
    plot(x,y,'-b.');
    
    line([2.5,2.5],[0,2.5^3*sin(2.5)]);
    % 作线函数
    % line([起点横坐标,终点横坐标],[起点纵坐标,终点纵坐标])
    % 修饰该直线,先加一个linestyle 再确定直线形式,再加{'colcor','k'},k为颜色代码
    % line([1,2],[2,1],'linestyle','--','color','k');
    
    str = '$ \int_{0}^{2.5} x^3\sin(x) dx $';
    % $数学公式$
    % 积分公式:\int_{下限}^{上限}dx   
    % \隔开
    
    text(0.3,6.5,str,'Interpreter','latex');
    % text(x坐标,y坐标,'string')在图形中指定位置(x,y)显示字符串string。
    % Interpreter,决定Text对象中是否可用latex字符注释,当设置为latex时,表示允许用户能够在String属性下输入latex字符。
    
    annotation('arrow','X',[0.32,0.5],'Y',[0.6,0.4]); 
    % annotation('箭头类型', 'X', [x1,x2], 'Y', [y1,y2]); 
    % line 线 arrow 箭头 doublearrow 双箭头 textarrow 带文本框的箭头 textbox 文本框注释
    

在这里插入图片描述

控制坐标轴,边框与网格

使用下列命令可以控制坐标轴,边框与网格

命令作用
grid on/off设置网格可见性
box on/off设置边框可见性
axis on/off设置坐标轴可见性
axis normal还原默认行为,将图框纵横比模式和数据纵横比模式的属性设置为自动
axis square使用相同长度的坐标轴线,相应调整数据单位之间的增量
axis equal沿每个坐标轴使用相同的数据单位长度
axis tight将坐标轴范围设置为等同于数据范围,使轴框紧密围绕数据
t = 0:0.1:2*pi;x = 4*cos(t);y = sin(t);%表示椭圆
plot(x,y,'-r');
grid on
box on

axis normal
text(0,0,'axis normal');
% axis square
% text(0,0,'axis square');
% axis equal
% text(0,0,'axis equal');
% axis tight
% text(0,0,'axis tight');

axis normal

在这里插入图片描述

axis square

在这里插入图片描述

axis equal

在这里插入图片描述

axis tight

在这里插入图片描述

绘制多条图线

在一个图像上绘制多条图线

  • 默认情况下,每次执行plot()函数都会清除上一次绘图的结果,多次执行plot()只会保留最后一次绘制的图形。

  • 使用hold onhold off命令控制绘图区域的刷新,使得多个绘图结果同时保留在绘图区域中。

    x=0:0.1:2*pi;
    y=sin(x); h=cos(x);g=(x.^2)/50;
    plot(x,y,'-g.');
    %第一次画了y
    hold on
    plot(x,g,'-r.', x,h,'-b.')
    %第二次画了g和h
    grid on
    box on
    axis on
    

在这里插入图片描述

在一个窗口内绘制多个图像

  • 使用subplot()函数可以在一个窗口内绘制多个图像

    该命令表示将当前图窗划分为 m ∗ n m*n mn个网格,并在第 p p p个网格内绘制图像。

subplot(m,n,p)

示例如下:

subplot(2,2,1);
%确定画图位置
x = 0:0.1:2*pi;
y_sin = sin(x);
plot(x,y_sin,'-g.');
axis tight
title('Subplot1:Sine');

subplot(2,2,2);
%确定画图位置
x = 0:0.1:2*pi;
y_cos = cos(x);
plot(x,y_cos,'-r.');
axis tight
title('Subplot2:Cosine');

subplot(2,2,[3,4]);
%确定画图位置
x = 0:0.1:2*pi;
y = (x.^2)/50;
plot(x,y,'-b.');
axis tight
title('Subplot3');

在这里插入图片描述

通过图形句柄操作图形属性

使用get()set()函数可以对图形对象的属性进行访问和修改,访问官方文档可以查看所有图形对象的属性。

set(H,Name,Value)
% 改变某一特定属性的数值
get(H,'propertyName')
% get(对象句柄, '属性名')

将图形保存到文件

  • 将图窗另存为图像文件

    创建一个绘图并将其另存为 PNG 图像文件,存储到matlab的根文件夹。

x=0:0.1:2*pi;
y=sin(x);
plot(x,y,'-g.');
%示例
print('example','-dpng')
  • 也可以直接在figure界面保存,或者截图。
  • 13
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值