我是靠谱客的博主 风中烤鸡,最近开发中收集的这篇文章主要介绍关于Matlab坐标轴的Position,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

想画一个坐标轴箭头,需要知道axis的坐标:

x1=linspace(0,1,100);
y1=x1.^2;
figure1 = figure('PaperPosition',[0.6345 6.345 20.3 15.23],'PaperSize',[20.98 29.68]);
axes1 = axes('Parent',figure1);
hold(axes1,'all');
plot1 = plot(x1,y1);
% axis square
pos = get(axes1, 'position');
annotation('arrow', [pos(1), pos(1)+pos(3)], [pos(2) pos(2)+pos(4)]);


可以看出这个代码:

pos = get(axes1, 'position');
能得出axis的正确的坐标。

但是加上这个

axis square

x1=linspace(0,1,100);
y1=x1.^2;
figure1 = figure('PaperPosition',[0.6345 6.345 20.3 15.23],'PaperSize',[20.98 29.68]);
axes1 = axes('Parent',figure1);
hold(axes1,'all');
plot1 = plot(x1,y1);
axis square
pos = get(axes1, 'position');
annotation('arrow', [pos(1), pos(1)+pos(3)], [pos(2) pos(2)+pos(4)]);

这几个黑框就是就是pos = get(axes1, 'position');计算出来的坐标。

但是加上axis square,就不知道问题出在那了?就找不到坐标轴原点的坐标了。

微博上星空下的巫师,给了两个链接, http://www.mathworks.com/matlabcentral/fileexchange/30018和http://www.mathworks.com/matlabcentral/fileexchange/32168,第一个链接中自己感觉有个问题


figure,
x = 1:10;
y = x.^2;
plot(x, y, '-r', 'LineWidth', 2);
axis off;
oa = oaxes;
set(oa, 'TickLength', [10 10]);
set(oa, 'Arrow', 'end');
grid on
oa.Origin = [0 0 0];


从图中可以看出来,这个箭头的形状是和这个轴上TickLength相关联的,在个图中Ticklength太长了不好看。感觉还是不如这个annotation用的方便,但是就找到要画的坐标不容易。求解决。。

最后

以上就是风中烤鸡为你收集整理的关于Matlab坐标轴的Position的全部内容,希望文章能够帮你解决关于Matlab坐标轴的Position所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部