MATLAB学习(四):初阶绘图

MATLAB学习(四):初阶绘图

思考了一下,自己现在还在了解阶段,记太细的笔记速度太慢了,而且效率低,以后记代码

防止清空图像

默认情况下,每次执行plot()函数都会清除上一次绘图的结果,多次执行plot()只会保留最后一次绘制的图形.
使用hold on和hold off命令控制绘图区域的刷新,使得多个绘图结果同时保留在绘图区域中

绘图并加入图例、标题、标签

  • plot()函数绘图
    plot(x,y,LineSpec),x为图线上点的x坐标,y为图线上点的y坐标,LineSpec为图线的线条设定,三个指定线型,标记符号和颜色的设定符组成一个字符串,设定符不区分先后

  • 使用legend()函数为图片增加图例
    (1)legend(label1, …, labelN),其中label1至labelN的顺序与plot中函数的顺序相同(2)legend({‘cos(x)’,‘cos(2x)’,‘cos(3x)’,‘cos(4x)’},‘Location’,‘northwest’,‘NumColumns’,2)表示在西北角设置2列图例,location指定了图例位置,NumColumns指定图例列数

  • 使用title()和*label()为图片增加标题和标签,并且在遇到特殊字符时,可以使用大括号如:e^{-x}

x=0:0.5:4*pi;
y=sin(x); h=exp(-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^-');		% 绘制多条图线
xlabel('x=0 to 4*pi');
ylabel('values of function');
title('function plots');
legend('sin(x)','e^{-x}','Sigmoid','Gauss function');	% 添加图例

运行结果如下
MATLAB学习(四):初阶绘图_第1张图片

绘图并加入注解

  • linspace (0,3)表示生成包含0和3的一行100列矩阵,可以理解为生成包括0和3的100个数,linspace(a,b,n)表示生成包含a和b的一行n列矩阵,间隔为(b-a)/n-1,可以理解为生成包括a和b的均匀的n个数
  • $$ 为letex的起始符和结束符
  • text(0.25,2.5,str,‘Interpreter’,‘latex’); 0.25为开始位置,2.5为结束位置,显示内容为str
  • annotation()是注释,arrow是箭头,‘X’,[0.32,0.5],‘Y’,[0.6,0.4]表示箭头x坐标从整个图形32%的地方到整个图形50%的地方,y坐标从整个图形60%的地方到整个图形40%的地方
x = linspace(0,3); y = x.^2.*sin(x); plot(x,y);
line([2,2],[0,2^2*sin(2)]);%表示图上的那条线
str = '$$ \int_{0}^{2} x^2\sin(x) dx $$'; %int-表示积分02分别为上标和下标
text(0.25,2.5,str,'Interpreter','latex');
annotation('arrow','X',[0.32,0.5],'Y',[0.6,0.4]); %箭头

MATLAB学习(四):初阶绘图_第2张图片

调整图像

  • get()函数:访问图形对象的属性
  • set()函数:修改图形对象的属性

修改下图
MATLAB学习(四):初阶绘图_第3张图片

x=linspace(0,2*pi,1000);
y=sin(x);plot(x,y);
h=plot(x,y);
get(h);%获取图像即sinx的点
get(gca);%gca为坐标轴的句柄,获取坐标轴
set(gca,'XLim',[0,2*pi]);%将x轴改为02派
set(gca,'YLim',[-1.2,1.2]);%将y轴改为-1.21.2
set(gca,'FontSize',25);%将坐标轴字体改为25
set(gca,'XTick',0:pi/2:2*pi);%将x轴的每个刻度大小改为0.5派
set(gca,'XTickLabel',0:90:360);%将x轴的数字改为用角度表示
set(gca,'FontName','Symbol');%这与下面一行一起,将坐标轴的数字改为用派表示,但若是在matlab2018中就会报错
set(gca,'XTickLabel',{
     '0','p/2','p','3p/2','2p'});
% set(gca,'XTickLabel',{
     '0','\pi/2','\pi','3\pi/2','2\pi'});在matlab2018中只需这一行就可将坐标轴数字改为用派表示
set(h,'LineStyle','-.','LineWidth',7.0,'color','g');%修改图像的线形、宽度、颜色

MATLAB学习(四):初阶绘图_第4张图片

分开画两张图

  • 分别呼叫两个figure
  • 当要对图像进行修改时,需表明是哪个figure,如get(gca(1)),不然的话只会对正在画的图进行修改
x=-10:0.1:10;
y1=x.^2-8;
y2=exp(x);
figure,plot(x,y1);
figure,plot(x,y2);

在一个figure上画多张图

  • subplot(m,n,1):在平铺位置创建坐标区,将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。MATLAB® 按行号对子图位置进行编号。第一个子图是第一行的第一列,第二个子图是第一行的第二列,依此类推。如果指定的位置已存在坐标区,则此命令会将该坐标区设为当前坐标区。
  • 以下所有命令如果不跟在每个plot后面,那么就默认只对当前图操作
    MATLAB学习(四):初阶绘图_第5张图片
t=0:0.1:2*pi;x=3*cos(t);y=sin(t);
subplot(2,2,1);plot(x,y);axis normal
subplot(2,2,2);plot(x,y);axis square
subplot(2,2,3);plot(x,y);axis equal
subplot(2,2,4);plot(x,y);axis equal tight

MATLAB学习(四):初阶绘图_第6张图片

保存图

  • 使用saveas(fig,filename)命令可以将图形对象保存到文件中,其中fig为图形句柄,filname为文件名.
  • 使用saveas()函数将图像保存成位图时,会发生失真.若要精确控制生成图片的质量,可以使用print()函数。
saveas(gcf, 'myfigure.png')

你可能感兴趣的:(笔记,matlab)