matlab提供的图形放大和平移函数zoom和pan可以通过鼠标来控制图形,非常方便,在工具条toolbar上也有对应的按钮。但是在放大或平移自己画的数据图是,有时会出现部分图形超出了坐标系的边界的问题,非常奇怪。

经分析和试验,发现问题主要是由于坐标系axes所属的父容器parent的不同,造成了不同的结果,如果指定axes的父容器为窗体figure,则不会出问题,如果指定axes的父容器为面板uipanel,则用patch、bar等命令画的图形对象就会超出坐标轴,而用line、plot命令画的线条图形对象不会超出坐标轴。

如图:

图形超出了边界

对应的程序:

    x2 = [0.7 1.7; 0.7 1.7; 1.3 2.3;1.3 2.3];y2 = [4.5 4.5; 5.5 5.5; 5.5 5.5;4.5 4.5];f   = figure('menubar','none','toolbar','none');p   = uipanel('backgroundcolor',[0.247 0.247 0.247],'pos',[0.01 0.01 0.98 0.98]);ax  = axes('parent',p,'color','k','pos',[0.1 0.1 0.8 0.8]);hold on;patch(x2,y2,'green');for i = 1:10line([i i],[4 6],'Color','green');endbar(2+random('normal',0,1,1,10));pan xon;

其中ax =axes('parent',p,'color','k','pos',[0.10.10.80.8]); 语句指定了ax坐标轴的父容器为面板p。

修改坐标轴的父容器为figure的效果:

图形不能超出边界

对应代码时将:ax =axes('parent',p,'color','k','pos',[0.10.10.80.8]); 修改为:ax =axes('parent',f,'color','k','pos',[0.10.10.80.8]);就可以了。

修改后的坐标系不再是面板uipanel的子控件了,而升级到了uipanel的同一辈分,都是figure窗体的子控件了。

matlab中patch命令_matlab 放大平移图形是超出边界问题的处理相关推荐

  1. matlab中patch命令_matlab中patch函数的用法——emily

    patch 创建补片图形对象 句法: patch(X,Y,C) patch(X,Y,Z,C) patch(FV) patch(...'PropertyName',propertyvalue...) p ...

  2. matlab中patch命令_matlab中patch函数的用法

    描述: patch是个底层的图形函数,用来创建补片图形对象.一个补片对象是由其顶点坐标确定的一个或多个多边形.用户可以指定补片对象的颜色和灯光. patch(X,Y,C) 添加已填充的二维补片到当前坐 ...

  3. matlab中patch命令_matlab中图像块(patch)处理命令小结

    在使用MATLAB语言实现图像处理算法时,我们常常会遇到需要对图像块(patch)进行运算的情况.受到其他语言编程习惯的影响,循环通常是不假思索的第一选择.但由于matlab是利于矩阵运算的编程语言, ...

  4. matlab中patch是什么意思,Linux中patch命令起什么作用呢?

    摘要: 下文讲述Linux中patch命令的功能说明,如下所示: patch命令功能: 可修复,修改,更新原始文件 patch常用于修复linux内核文件 patch命令的语法格式: patch [参 ...

  5. 如何将matlab中多个m文件的图形,在一个图形上面显示

    将matlab中多个m文件的图形在同一个小窗口上显示的前提是坐标系相同,下面就做简单的介绍: 1.新建一个huatu1.m文件,三角函数为例,程序如下: x=0:1:360; y=sind(x); p ...

  6. matlab中patch函数的用法

    描述: patch是个底层的图形函数,用来创建补片图形对象.一个补片对象是由其顶点坐标确定的一个或多个多边形.用户可以指定补片对象的颜色和灯光. patch(X,Y,C) 添加已填充的二维补片到当前坐 ...

  7. matlab中ss函数_matlab状态空间模型(matlab中如何通过ss函数和tf2ss函数将微分方程转化...)...

    matlab中如何通过ss函数和tf2ss函数将微分方程转化... 例如下面的一道题. 方法一: num=[0 0 10 10]; den=[1 6 6 10]; [A,B,C,D]=tf2ss(nu ...

  8. matlab函数fftshift,matlab中fft算法_matlab中fftshift函数_matlab中fft函数的用法(2)

    plot([0 : PointNum/2 - 1], x1(1:PointNum/2)); grid on subplot(3,1,2); % [REX IMX] am = sqrt(abs(REX. ...

  9. matlab dotchart,MATLAB中如何用对数方式显示图形坐标?

    前言 当我使用MATLAB画了一幅曲线图之后,例如: 由于x轴10以下的单位内,y值比较小,而之后比较大,因此,我想更清晰地看y值得变化趋势,因此我想用对数标准的方式来显示y. 方法1 在画图程序的后 ...

最新文章

  1. react源码学习笔记
  2. 蓝桥杯-操作格子(java)
  3. Android UI之ImageButton(带图标的按钮)
  4. android照片备份软件下载,照片备份云相册app下载-照片备份云相册下载V1.9安卓版-西西软件下载...
  5. raspberry pi 家族
  6. CLIP还能做视频字幕任务!腾讯清华提出CLIP4Caption,ACM MM2021挑战赛第二名!
  7. SpringBoot的MyBatis generator 注解方式和xml方式 (四)
  8. Java之for和while的内容
  9. 4核处理器_4核、6核以及8核 游戏玩家如何按需购买CPU
  10. CCF NOI1070 汉诺塔游戏
  11. IO口模拟SPI总线问题
  12. 系统分析师 考试大纲
  13. xp系统从u盘启动计算机,教你怎么用U盘安装Windows XP系统
  14. 品味kettle--(一)用eclipse 搭建源码
  15. 今日早报 每日精选12条新闻简报 每天一分钟 知晓天下事 9月24日
  16. self-startup command line(or CLI) in windows
  17. C语言中的 @ 符号
  18. Vue指令之列表渲染
  19. 刷题找工作《买卖股票问题》一文通解
  20. 将固态硬盘作为缓存的设置方法

热门文章

  1. 零基础小白学Java难度大不大
  2. flutter离线源码安装包最新版本下载地址
  3. win7安装mysql-8.0.13-winx64
  4. Android 多媒体综述
  5. 一条数字链路连接的端口无法UP及后续相应故障的排除
  6. 分享Kali Linux 2017年第11周镜像文件
  7. 润乾报表永久授权说明
  8. 沃通免费SSL证书申请指南
  9. Linux_DNS服务器
  10. linux中使用CST时间