在MATLAB图中查找轴TickValues的位置

时间:2017-02-14 20:48:00

标签: matlab matlab-figure matlab-guide handle

我试图从MATLAB图中获取轴TickValues的位置。例如,我的数字如下:

MATLAB Figure

在将图形保存为图像后,我试图找到轴TickValues的位置[如图所示] [注意:边界框是手工制作的。忽略任何错误]

axis TickValue Location

以下是我目前生成的代码:

h = plot(1:10);
hFrame = getframe(h.Parent.Parent);
hImage = hFrame.cdata;
set(h.Parent,'Units','pixel');

我正试图从hImage的{​​{1}}获取position的x轴TickValues和y轴TickValues的边界框。

如果问题尚不清楚,请告诉我。我会编辑以使其更清晰。

1 个答案:

答案 0 :(得分:1)

作为@suever suggested in comments,轴的Position属性将是最简单的方法:

h = plot(1:10);
pos = h.Parent.Position; % get the axes position
m = 3; % width and hight multiplyer
xth = h.Parent.XAxis.TickLength(2); % get x-axis tick hight
dimx = [pos(1)-xth pos(2)-xth*m pos(3)+xth*2 xth*m];
annotation('rectangle',dimx,'color','r') % for demonstration
yth = h.Parent.YAxis.TickLength(2); % get y-axis tick hight
dimy = [pos(1)-yth*(m-1) pos(2)-yth yth*(m-1) pos(4)+yth*2];
annotation('rectangle',dimy,'color','r') % for demonstration

演示:

axis_position

并且您可以更改m以确保所有刻度值都在边界框内。

修改

选项2:

op2

选项3:

op3