声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: tjufc

[绘图技巧] 如何把matlab中画的二维坐标图形进行局部放大

  [复制链接]
发表于 2013-5-2 15:58 | 显示全部楼层
很好的东西,但是不知道是对那部分区域进行的放大,最好标出来。
回复 支持 反对
分享到:

使用道具 举报

发表于 2013-5-2 23:11 | 显示全部楼层

谢谢版主提醒,这个是以前偶尔看到,所以就复制粘贴上来了,自己稍微做了修改


  1. function zoom(x, x1, x2)
  2. % x代表一维信号;x1和x2代表要放大区域的横坐标
  3. % 考虑到坐标不是整数的情况所以用了floor和ceil函数
  4. haxes1 = axes('position',[0.1 0.1 0.8 0.8]);
  5. axis(haxes1);
  6. h1 = plot(x, 'b-');
  7. hold;
  8. x1 = floor(x1);
  9. x2 = ceil(x2);
  10. h = rectangle('position',[x1, min(x(x1:x2)), x2-x1, max(x(x1:x2))-min(x(x1:x2))]);
  11. set(h,'edgecolor','red','LineWidth',2);
  12. haxes2 = axes('position',[0.55 0.55 0.3 0.3]);
  13. axis(haxes2);
  14. h2 = plot(x, 'r-');
  15. axis([x1 x2 min(x(x1:x2)) max(x(x1:x2))]);
  16. h3 = [h1; h2];
  17. M = {'总体轮廓';'细节部分'};
  18. hlegend = legend(h3,M,'Location','northwest');
复制代码

结果:
360截图20130502230115546.jpg
问题:第二个坐标轴在figure中的具体位置要根据情况自己设定,不然有可能会覆盖原来信号波形,这个还不知道怎么解决。

评分

1

查看全部评分

发表于 2013-5-2 23:25 | 显示全部楼层
其实个人是比较喜欢把原有及zoom开的数据画成上下(一大一小)的图
还可以吧
发表于 2013-5-3 07:54 | 显示全部楼层
ChaChing 发表于 2013-5-2 23:25
其实个人是比较喜欢把原有及zoom开的数据画成上下(一大一小)的图
还可以吧

嗯,这个发表论文的时候可能用得到,平时都不怎么用
发表于 2013-5-3 08:23 | 显示全部楼层
chybeyond 发表于 2013-5-3 07:54
嗯,这个发表论文的时候可能用得到,平时都不怎么用

其实你说对了, 这感觉好像仅是发表资料好看, 平时都是不怎么用的
工作上针对信号处理, 个人都是使用2F的方式初步观察得到的资料
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-10 21:52 , Processed in 0.108355 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表