点击打开链接
原文
某位PKU前辈的工作,很赞。移动坐标轴就先隐藏之前的坐标轴,再用axis('position')属性重新生成新轴,很巧妙。

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');
end

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

下面是一个例子:

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

clc;clear;close all;
t=linspace(-2,8,100);
a1=axes;
plot(t,cos(t));

% xt=get(gca,'xtick');
% set(gca,'XTick',[],'XColor','w');
% xL=xlim;
% p=get(gca,'Position');
% box off;
% a2=axes('Position',p+[0,p(4)/2,0,-p(4)/2]);
% xlim(xL);box off;
% set(gca,'XTick',xt,'Color','None','YTick',[]);

new_fig_handle = shift_axis_to_origin( gca ) ;

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

此例子的实现效果如下两个图所示:

MATLAB 把坐标轴(X Y轴)移到坐标原点相关推荐

  1. matlab 坐标轴居中,MATLAB 把坐标轴(X Y轴)移到坐标原点

    某位PKU前辈的工作,很赞.移动坐标轴就先隐藏之前的坐标轴,再用axis('position')属性重新生成新轴,很巧妙. function new_fig_handle = shift_axis_t ...

  2. python使用matplotlib可视化函数曲线、设置y轴为对数坐标(log scale)、默认情况下坐标轴为线性坐标

    python使用matplotlib可视化函数曲线.设置y轴为对数坐标(log scale).默认情况下坐标轴为线性坐标 目录

  3. Matlab绘制包含双Y轴的图

    绘制数据对左侧 y 轴的图 创建左右两侧都有 y 轴的坐标区.yyaxis left 命令用于创建坐标区并激活左侧.后续图形函数(例如 plot)的目标为活动侧.绘制数据对左侧 y 轴的图. x = ...

  4. 使用canvas根据坐标集合绘制坐标点 + 更改坐标轴 + 旋转y轴

    效果 场景 根据坐标点使用canvas在画布上展示出来 html <canvas ref="canvasImg" class="canvasImg" st ...

  5. echarts坐标轴左右y轴统一间距

    右边 0-100 可等分5份,要求左边的动态数据也等分5份展示,避免参考线不重合 算出左边坐标轴最大值 const lineData = [.....] // 左边坐标轴对应的所有数据值 const ...

  6. matlab画置信区间图,matlab绘制带置信区间的双y轴图形 | 学步园

    matlab的双y轴网上有很多方法,但是带置信区间的双y轴就很少了,并且由于网上给的例子一般都是使用红蓝两色,对于只想使用黑色或者灰色的俺们来说太鲜艳啦~ 上图为使用matlab绘制的双y轴带置信区间 ...

  7. matlab 为双y轴加标签,[转载]matlab双y轴添加误差棒(转载)

    matlab的双y轴网上有很多方法,但是带置信区间的双y轴就很少了,并且由于网上给的例子一般都是使用红蓝两色,对于只想使用黑色或者灰色的俺们来说太鲜艳啦~ 上图为使用matlab绘制的双y轴带置信区间 ...

  8. matlab 双y轴对数坐标 误差线,matlab双y轴添加误差棒(转载)

    matlab的双y轴网上有很多方法,但是带置信区间的双y轴就很少了,并且由于网上给的例子一般都是使用红蓝两色,对于只想使用黑色或者灰色的俺们来说太鲜艳啦~ 上图为使用matlab绘制的双y轴带置信区间 ...

  9. matlab 改变坐标轴间距,matlab坐标轴刻度间距

    matlab坐标轴操作大全_电脑基础知识_IT/计算机_专业资料. 坐标轴标注: 1. 控制坐标轴尺度长度:set(gca,'XLim',[-pi/2 pi]) 2. 定制自己想标注的刻度: .... ...

最新文章

  1. JavaScript之作用域链
  2. 阿里云云盾吴翰清:未来将重点构建阿里云用户安全的大生态
  3. 摘要注释_《间架结构摘要九十二法》高清图片+注释 爱书法的朋友值得收藏
  4. tomcat的log日志乱码解决方案
  5. 记一次ssh登录异常
  6. 【SQL编程】Greenplum 实现树结构+自定义函数+避免函数重复调用+ function cannot execute on a QE slice 问题处理(优化过程全记录)
  7. Android 监听锁屏、解锁、开屏 操作
  8. 2.cocos2dx 3.2中语法的不同之处,lambada表达式的使用和function和bind函数的使用
  9. 发布订阅之direct
  10. Html5中的Video元素使用方法
  11. poi excel文档生成与读取
  12. 如何才能成为一个成功的项目经理
  13. 又拍云引领云CDN加速 或成互联网刚性需求
  14. Atitit.研发团队与公司绩效管理的原理概论的attilax总结
  15. 数据仓库技术解决方案
  16. NOD32企业内部更新服务器搭建
  17. cadence 617工艺库安装以及相关问题解决
  18. 关于前端一个用于设置渐变色的css代码网站
  19. php计算工资的代码,php计算税后工资的方法_PHP
  20. 世界杯winner只属于你——MESSI

热门文章

  1. Windows平台,在Python上安装Shogun
  2. C++ 实现磁盘初始化
  3. 英语c开头语言,C开头的英语短语集锦
  4. clipper运行以及使用——轻松一刻
  5. GNVM版本下载太慢用淘宝镜像速度提百倍哈
  6. 【刷题记录1】算法|数据结构|C/C++
  7. 国际歌 英特纳雄耐尔一定要实现
  8. 20175227张雪莹 2018-2019-2 《Java程序设计》第六周学习总结
  9. python:批量修改文件的访问时间、修改时间、改变时间!
  10. Taulia的Darcy Douglas入选供应链最优秀女性