欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MATLABの基础绘图

程序员文章站 2022-03-22 14:26:20
文章目录图线的绘制与装饰使用plot()函数绘制图线给制不带线条的数据点线型设定符标记设定符d颜色设定符EXAMPLE装饰图线添加图例添加标题和标签添加注解控制坐标轴,边框与网格绘制多条图线在一个图像上绘制多条图线在一个窗口内绘制多个图像通过图形句柄操作图形属性将图形保存到文件图线的绘制与装饰使用plot()函数绘制图线在MATLAB中,使用plot()函数绘制图线,其语法为:plot(x,y,'lineSpec')x: 图线上点的x坐标y: 图线上点的y坐标LineSpec: 图线的线条...

图线的绘制与装饰

使用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')

MATLABの基础绘图

装饰图线

添加图例

  • 使用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');	% 添加图例
    

MATLABの基础绘图

添加标题和标签

  • 使用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('饱和电流和入射光强的关系') 
    

MATLABの基础绘图

添加注解

  • 使用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 文本框注释
    

MATLABの基础绘图

控制坐标轴,边框与网格

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

命令 作用
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

MATLABの基础绘图

axis square

MATLABの基础绘图

axis equal

MATLABの基础绘图

axis tight

MATLABの基础绘图

绘制多条图线

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

  • 默认情况下,每次执行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
    

MATLABの基础绘图

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

  • 使用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');

MATLABの基础绘图

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

使用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界面保存,或者截图。

本文地址:https://blog.csdn.net/Antonioxv/article/details/109823395