function  new_fig_handle = shift_axis_to_origin( fig_handle )

% 本函数目的是把 matlab 做的图坐标轴移到图形的中间部分去(与数学的做图习惯一致)

% 2008.10.10 in pku

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

figure('Name','shift_axis_to_origin','NumberTitle','off')                         % Create a new figure

% 拷贝图形到一个新的窗口

new_fig_handle = copyobj( fig_handle , gcf );

xL=xlim ;

yL=ylim ;

xt=get(gca,'xtick') ;

yt=get(gca,'ytick') ;

set(gca,'XTick',[],'XColor','w') ;

set(gca,'YTick',[],'YColor','w') ;

% 把 x 和 y 坐标轴的两个方向各延长 10% (为了视觉上好看)

extend_x = ( xL(2)-xL(1) ) * 0.1 ;

extend_y = ( yL(2)-yL(1) ) * 0.1 ;

xxL = xL + [ -extend_x extend_x] ;

yyL = yL + [ -extend_y extend_y] ;

set(gca,'xlim', xxL) ;

set(gca,'ylim', yyL) ;

pos = get(gca,'Position') ;

box off;

x_shift = abs( yyL(1)/(yyL(2)-yyL(1)) ) ;

y_shift = abs( xxL(1)/(xxL(2)-xxL(1)) ) ;

temp_1 = axes( 'Position', pos + [ 0 , pos(4) * x_shift , 0 , - pos(4)* x_shift*0.99999 ] ) ;

xlim(xxL) ;

box off ;

set(temp_1,'XTick',xt,'Color','None','YTick',[]) ;

set(temp_1,'YColor','w') ;

temp_2 = axes( 'Position', pos + [ pos(3) * y_shift , 0 , -pos(3)* y_shift*0.99999 , 0 ] ) ;

ylim(yyL) ;

box off ;

set(temp_2,'YTick',yt,'Color','None','XTick',[]) ;

set(temp_2,'XColor','w') ;

Base_pos = get(new_fig_handle,'Position') ;

arrow_pos_in_x_dircetion = Base_pos(2) - Base_pos(4) * yyL(1)/(yyL(2)-yyL(1)) ;

arrow_pos_in_y_dircetion = Base_pos(1) - Base_pos(3) * xxL(1)/(xxL(2)-xxL(1)) ;

annotation('arrow',[Base_pos(1) , Base_pos(1)+Base_pos(3)] , [arrow_pos_in_x_dircetion , arrow_pos_in_x_dircetion ] , 'Color','k');

annotation('arrow',[arrow_pos_in_y_dircetion , arrow_pos_in_y_dircetion ] , [Base_pos(2) , Base_pos(2)+Base_pos(4)] , 'Color','k');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

以上程序才有 正确结果,楼主的原来程序,应该有错误的地方,我也是复制我同事给我的程序,绘图不会出错。

用matlab画图将原点显示,[转帖] Matlab plot画图时,让原点在图中心相关推荐

  1. matlab显示函数表达式_MATLAB在绘图时的用法——线形图

    点击上方蓝字  关注我们 MATLAB有很强的绘图功能,我们可以通过简单的代码画出一些直观而漂亮的代码.今天,我们一起来学习基本绘图常用函数. 在MATLAB中绘图首先需要设定x的范围,一般使用冒号来 ...

  2. matlab仿真结果只显示5s时间,MATLAB仿真时间是怎么确定的啊?

    匿名用户 1级 2011-02-21 回答 展开全部 摘要:由于MA7ⅡAB不能直接对硬件端12进行读写操作,缺乏了实时性,使得工程上的应用受到了 极大的限制.而通过MATI.AB应用程序接口Mex调 ...

  3. matlab等高线图例如何显示,如何在MATLAB中的等高线图的等高线上放置字符串标签...

    我想知道是否可以用一组用户定义的字符串标记MATLAB等高线图的轮廓? 我目前正在使用以下代码片段来生成标记的等高线图: %Create Data X = 0.01:0.01:0.10 Y = 0.0 ...

  4. matlab静态文本框显示,如何在Matlab GUI中利用静态文本框显示程序的结果

    www.mh456.com防采集. 调用2113pushbutton的回调函数,再用set让结构在5261文本框中显示.给4102一个简单的例1653子:内pushbutton的回调函数(实现两容个数 ...

  5. Matlab plot画图 坐标字体、字号、范围、间隔等的设置

    Matlab plot画图 坐标字体.字号.范围.间隔等的设置 MATLAB 坐标的数字.范围.间隔调整 matlab绘图的时候只用plot函数出来的图不一定符合自己最想要的格式, 经常要对坐标的数字 ...

  6. python画图程序没有图_解决python中使用plot画图,图不显示的问题

    解决python中使用plot画图,图不显示的问题 对以下数据画图结果图不显示,修改过程如下 df3 = {'chinese':109, 'American':88, 'German': 66, 'K ...

  7. 用matlab怎么画视电阻率拟断面图,在MATLAB平台上实现可控源音频大地电磁反演数据三维可视化显示...

    第29卷 增刊 物探化探计算技术 2007年10月 收稿日期6文章编号:1001-1749(2007)增刊(1)-0068-04 在MAT LAB 平台上实现可控源音频大地 电磁反演数据三维可视化显示 ...

  8. matlab plot画图指定线型和颜色

    matlab plot画图指定线型和颜色 plot(x,y1,'.b'); %b代表蓝色,.代表点; plot(x,y2,'-g'); %g代表绿色,-代表线

  9. MATLAB plot画图后横轴去除空白

    MATLAB plot画图后横轴去除空白 MATLAB plot原来画图都是填充满的,今天不知道怎么了,横轴留有一部分空白,看起来十分不美观,可以修改一下上下限使其美观一些. 方法 x轴上下限设定 x ...

最新文章

  1. [再寄小读者之数学篇](2014-04-18 from 352558840@qq.com [南开大学 2014 年高等代数考研试题]二次型的零点)...
  2. OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔总结
  3. JS实现App扫码网页端登录
  4. 參加microsoft主管信息論壇
  5. docker内存阀值_kubernetes调度之资源耗尽处理配置
  6. 关于Intel IPP的基本使用方法——参照可设置ipl库
  7. [iOS]CIFilter滤镜
  8. 前端笔记(1-20)
  9. 操作系统学习笔记:内存管理
  10. 吴恩达机器学习视频学习笔记(3)
  11. 如何通过SCJP考试(含真题分析和考点)
  12. 软件工程-软件维护/系统维护
  13. [W]和[V]的发音
  14. linux设置小技巧
  15. MIUI——添加学校邮箱到电子邮件解决方案
  16. 蓝桥杯2020年第十一届C/C++B组(第一次)省赛习题题解
  17. Omni Core v0.11.0 rpc-api
  18. $.inArray()方法
  19. ZZNUOJ_用C语言编写程序实现1261:小媛在努力(附完整源码)
  20. 程序员常用的46个快捷键

热门文章

  1. 怎样把台式机变成虚拟服务器,怎么把文件传到虚拟主机
  2. window.open怎么设置title_企业seo怎么优化 都有那些策略?
  3. mqtt服务器收不到设备信息,在我的终端(mosquitto)上显示来自mqtt服务器的json消息...
  4. 写在使用 Linux 工作一年后
  5. Veritas面向OpenStack推出全新软件定义存储解决方案
  6. 面试常考题:不调用库函数,怎样实现字符串操作函数?
  7. Unity C# 反编译
  8. Linux常用的基本命令14
  9. ikvm.net简介
  10. 旅游解说系统 VS 旅游信息系统