声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 8828|回复: 22

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

  [复制链接]
发表于 2013-4-26 16:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
请教大家,如何把matlab中画的二维坐标图形进行局部放大?具体问题是:
     将一个矩形把二维坐标中函数曲线的一部分进行框选,对这个框选的部分图
形进行放大,放大的图形显示在原图形的空白区域。其目的是想把曲线的部分细
节显示出来,因为坐标轴范围过大,曲线的细节曲折没有显示出来。这个如何实
现?在此先谢啦!
回复
分享到:

使用道具 举报

发表于 2013-4-26 22:01 | 显示全部楼层
plot指令后的图框上头, 不是有个zoom in吗!?
 楼主| 发表于 2013-4-26 22:10 | 显示全部楼层

谢谢ChaChing ,我的目的是在图上再画出一个放大局部的缩略图,相当于绘制一个画中画的效果图,不过现在我已经找到方法,该问题已经解决了,:),再次谢谢您。
发表于 2013-4-26 22:31 | 显示全部楼层
tjufc 发表于 2013-4-26 22:10
谢谢ChaChing ,我的目的是在图上再画出一个放大局部的缩略图,相当于绘制一个画中画的效果图,不过现在我 ...

恭贺解决了
建议与大家分享下LZ的成果!
 楼主| 发表于 2013-4-27 07:44 | 显示全部楼层
ChaChing 发表于 2013-4-26 22:31
恭贺解决了
建议与大家分享下LZ的成果!

嗯,好的,我也是参考网上资源,参考代码如下:

figure;
h1=axes('position',[0 0 1 1]);
axis(h1);
x1=0:pi/50:2*pi;
y1=sin(x1);
h2=plot(x1,y1,'b-');
h3=axes('position',[0.3 0.2 0.4 0.4]);
axis(h3);
x2=0:pi/50:2*pi;
y2=cos(x2);
h4=plot(x2,y2,'r-');
hold on
h=[h2; h4];

figure.jpg

点评

赞成: 3.0
赞成: 3
  发表于 2014-2-22 13:03

评分

1

查看全部评分

发表于 2013-4-27 10:50 | 显示全部楼层
tjufc 发表于 2013-4-27 07:44
嗯,好的,我也是参考网上资源,参考代码如下:

figure;

好像个人误解LZ的问题吗?
如何把matlab中画的二维坐标图形进行局部放大
想把曲线的部分细节显示出来

但LZ所提供的代码, 好像并非"局部放大" & "部分细节"!?
 楼主| 发表于 2013-4-27 10:59 | 显示全部楼层
ChaChing 发表于 2013-4-27 10:50
好像个人误解LZ的问题吗?

修改该句,h2=plot(x1,y1,'b-');中x1和y1的显示范围,也就是在此处修改你即将放大的“局部”区间,然后作图即得。
 楼主| 发表于 2013-4-27 11:01 | 显示全部楼层
tjufc 发表于 2013-4-27 10:59
修改该句,h2=plot(x1,y1,'b-');中x1和y1的显示范围,也就是在此处修改你即将放大的“局部”区间,然后作 ...

提供的参考代码只是给出的相应的思路,应用时必须结合实际需求进行相应修改才可。

评分

1

查看全部评分

发表于 2013-4-27 11:29 | 显示全部楼层
谢谢分享成果! 并且说明清楚
其实实际应用上, 个人时常会使用到那些icon! 真的很方便实用
当然若是要显示图形给别人看, 就不同了
 楼主| 发表于 2013-4-27 11:40 | 显示全部楼层
ChaChing 发表于 2013-4-27 11:29
谢谢分享成果! 并且说明清楚
其实实际应用上, 个人时常会使用到那些icon! 真的很方便实用
当然若是要显示 ...

相互学习,共同进步,:)

点评

赞成: 5.0
赞成: 5
  发表于 2013-4-27 13:41
发表于 2013-4-28 14:46 | 显示全部楼层
tjufc 发表于 2013-4-27 07:44
嗯,好的,我也是参考网上资源,参考代码如下:

figure;

不错,收藏
发表于 2013-5-1 19:34 | 显示全部楼层
摘自Matlab的N个实用技巧

  1. %示例3:不同坐标轴中的图例和合并
  2. figure(1);
  3. haxes1=axes('position',[0.1 0.1 0.8 0.8]);
  4. axis(haxes1);
  5. x=-pi:pi/20:pi;
  6. y1=sin(x);
  7. y2=sin(x);
  8. h1=plot(x,y1,'b-');
  9. haxes2=axes('position',[0.5 0.2 0.3 0.3]);
  10. axis(haxes2);
  11. h2=plot(x,y2,'r+');
  12. axis([0 pi -1 1]);
  13. h=[h1; h2];
  14. M={'总体轮廓';'细节部分'}hlegend=legend(h,M,'Location','northwest');
复制代码
360截图20130501192423156.jpg

评分

1

查看全部评分

 楼主| 发表于 2013-5-1 21:18 | 显示全部楼层
chybeyond 发表于 2013-5-1 19:34
摘自Matlab的N个实用技巧

多谢chybeyond !
发表于 2013-5-1 22:08 | 显示全部楼层
chybeyond 发表于 2013-5-1 19:34
摘自Matlab的N个实用技巧

若能mark出zoom开的部位, 是不是更好, 更明确!?
发表于 2013-5-2 11:44 | 显示全部楼层
使用的东西
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-15 19:40 , Processed in 0.086925 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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