MATLAB 把坐标轴(X Y轴)移到坐标原点
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轴)移到坐标原点相关推荐
- matlab 坐标轴居中,MATLAB 把坐标轴(X Y轴)移到坐标原点
某位PKU前辈的工作,很赞.移动坐标轴就先隐藏之前的坐标轴,再用axis('position')属性重新生成新轴,很巧妙. function new_fig_handle = shift_axis_t ...
- python使用matplotlib可视化函数曲线、设置y轴为对数坐标(log scale)、默认情况下坐标轴为线性坐标
python使用matplotlib可视化函数曲线.设置y轴为对数坐标(log scale).默认情况下坐标轴为线性坐标 目录
- Matlab绘制包含双Y轴的图
绘制数据对左侧 y 轴的图 创建左右两侧都有 y 轴的坐标区.yyaxis left 命令用于创建坐标区并激活左侧.后续图形函数(例如 plot)的目标为活动侧.绘制数据对左侧 y 轴的图. x = ...
- 使用canvas根据坐标集合绘制坐标点 + 更改坐标轴 + 旋转y轴
效果 场景 根据坐标点使用canvas在画布上展示出来 html <canvas ref="canvasImg" class="canvasImg" st ...
- echarts坐标轴左右y轴统一间距
右边 0-100 可等分5份,要求左边的动态数据也等分5份展示,避免参考线不重合 算出左边坐标轴最大值 const lineData = [.....] // 左边坐标轴对应的所有数据值 const ...
- matlab画置信区间图,matlab绘制带置信区间的双y轴图形 | 学步园
matlab的双y轴网上有很多方法,但是带置信区间的双y轴就很少了,并且由于网上给的例子一般都是使用红蓝两色,对于只想使用黑色或者灰色的俺们来说太鲜艳啦~ 上图为使用matlab绘制的双y轴带置信区间 ...
- matlab 为双y轴加标签,[转载]matlab双y轴添加误差棒(转载)
matlab的双y轴网上有很多方法,但是带置信区间的双y轴就很少了,并且由于网上给的例子一般都是使用红蓝两色,对于只想使用黑色或者灰色的俺们来说太鲜艳啦~ 上图为使用matlab绘制的双y轴带置信区间 ...
- matlab 双y轴对数坐标 误差线,matlab双y轴添加误差棒(转载)
matlab的双y轴网上有很多方法,但是带置信区间的双y轴就很少了,并且由于网上给的例子一般都是使用红蓝两色,对于只想使用黑色或者灰色的俺们来说太鲜艳啦~ 上图为使用matlab绘制的双y轴带置信区间 ...
- matlab 改变坐标轴间距,matlab坐标轴刻度间距
matlab坐标轴操作大全_电脑基础知识_IT/计算机_专业资料. 坐标轴标注: 1. 控制坐标轴尺度长度:set(gca,'XLim',[-pi/2 pi]) 2. 定制自己想标注的刻度: .... ...
最新文章
- JavaScript之作用域链
- 阿里云云盾吴翰清:未来将重点构建阿里云用户安全的大生态
- 摘要注释_《间架结构摘要九十二法》高清图片+注释 爱书法的朋友值得收藏
- tomcat的log日志乱码解决方案
- 记一次ssh登录异常
- 【SQL编程】Greenplum 实现树结构+自定义函数+避免函数重复调用+ function cannot execute on a QE slice 问题处理(优化过程全记录)
- Android 监听锁屏、解锁、开屏 操作
- 2.cocos2dx 3.2中语法的不同之处,lambada表达式的使用和function和bind函数的使用
- 发布订阅之direct
- Html5中的Video元素使用方法
- poi excel文档生成与读取
- 如何才能成为一个成功的项目经理
- 又拍云引领云CDN加速 或成互联网刚性需求
- Atitit.研发团队与公司绩效管理的原理概论的attilax总结
- 数据仓库技术解决方案
- NOD32企业内部更新服务器搭建
- cadence 617工艺库安装以及相关问题解决
- 关于前端一个用于设置渐变色的css代码网站
- php计算工资的代码,php计算税后工资的方法_PHP
- 世界杯winner只属于你——MESSI