MATLAB figure图局部图放大

来源:MATLAB绘图—如何局部放大图_脑壳二的博客-CSDN博客_matlab局部放大图


   
   
  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%生产主图%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. N= 20000;
  3. i= 1: 1:N;
  4. a=sqrt( 100)*randn( 1,N/ 4);
  5. b=randn( 1,N);
  6. c=[a,b];
  7. h1=plot(i,c(i), ':.m', 'LineWidth', 0.7);
  8. legend(h1, 'signal')
  9. xlabel( 't/s');ylabel( 'signal');
  10. xlim([ 0, 20000]); % 设置坐标轴范围
  11. ylim([ -40, 80]);
  12. title( 'signal')
  13. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%生成局部放大图%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  14. axes( 'Position',[ 0.45, 0.55, 0.38, 0.28]); % 生成子图,第一个位置控制左右移动,第二个位置控制上下移动,第三个位置控制 宽窄
  15. plot(i,c(i), ':.m', 'LineWidth', 0.7);
  16. %%%%%%下面是给出需要放大的坐标位置%%%%%%%%%%%
  17. xlim([ 14000, 15000]); % 设置坐标轴范围
  18. ylim([ 140, 200]);

代码生成图

指定放大区


   
   
  1. N= 20000;
  2. i= 1: 1:N;
  3. a=sqrt( 100)*randn( 1,N/ 4);
  4. b=randn( 1,N);
  5. c=[a,b];
  6. h1=plot(i,c(i), ':.m', 'LineWidth', 0.7);
  7. xlabel( 't/s');ylabel( 'signal');
  8. xlim([ 0, 20000]); % 设置坐标轴范围
  9. ylim([ -40, 80]);
  10. title( 'signal')
  11. %%%%%%%%%%%%%%%%%%%%画途中的两条绿线%%%%%%%
  12. X1= 8200; Y1= 25;
  13. X2= 14000;Y2= 5.5;
  14. A=[X1,X2];B=[Y1,Y2];hold on;
  15. h2=plot(A,B, '-g', 'LineWidth', 1);
  16. X1= 18100; Y1= 25;
  17. X2= 15000;Y2= 5.5;
  18. A=[X1,X2];B=[Y1,Y2];hold on;
  19. h3=plot(A,B, '-g', 'LineWidth', 1);
  20. legend(h1, 'signal')%仅标注信号图
  21. %%%%%%%%%%%绿线会直接结束%%%%%%%%%%%%%%
  22. %%%%%%%%绘制放大图%%%%%%%%%
  23. hold on;
  24. axes( 'Position',[ 0.45, 0.55, 0.38, 0.28]); % 生成子图 % 生成子图,第一个位置控制左右移动,第二个位置控制上下移动,第三个位置控制 宽窄
  25. plot(i,c(i), ':.m', 'LineWidth', 0.7);
  26. xlim([ 14000, 15000]); % 设置坐标轴范围
  27. % ylim([ 140, 200]);
  28. %%%%%%%%绘制放大图%%%%%%%%%
  29. %%%%%%%%%%%%%%%%生成蓝色框%%%%%%%
  30. annotation( 'rectangle',[ 0.67, 0.34, 0.04, 0.08], 'LineStyle', '-', 'Color', 'b', 'LineWidth', 0.7)

   
   
  1. LineStyle 为线性
  2. Color为颜色
  3. LineWidth为线粗细

效果图:

 我在实际操作的时候遇见了一些问题:

1、放大区的方框的位置和方框的大小不好确定,如果用坐标去确定,很麻烦,得调整左右,上下位置,直到把方框放在合适的位置。比如程序中调整方框位置的程序:

axes('Position',[0.45,0.55,0.38,0.28]); % 生成子图  % 生成子图,第一个位置控制左右移动,第二个位置控制上下移动,第三个位置控制 宽窄
   
   

我的解决办法:

首先,随便给方框坐标,先把方框画出来,然后利用Figure的编辑功能,拖动方框的大小及位置,然后通过属性检查器的功能确定方框的位置,然后把坐标填入到程序里。

 需要确定的只是放大区位置,这个位置可以通过把鼠标放在图上就会自动显示出坐标位置,然后选择合适的坐标范围就可以了。对应的程序为 :


   
   
  1. xlim([ 14000, 15000]); % 设置坐标轴范围 ,用于说明放大哪个位置,即放大哪里
  2. ylim([ 140, 200]);

 2、箭头哪里找?

Figure插入中有,插入箭头

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值