在当前图中生成矩形注释

时间:2014-04-24 12:36:54

标签: matlab

我想在我的matlab图中插入一个矩形以突出显示特定区域:

x = [0 1 2 2 3 4 5 6 7 8 9 10];
y = [0 1 2 4 3 4 5 6 7 8 9 10];

fh = figure(1);
plot(x,y)
xlim([0 10]);
ylim([0 10]);

我可以通过使用注释功能并定义矩形的左下宽度高度来实现。

我想知道,这可以根据相关图中的x和y值来完成吗?对于所示的示例,例如,我想从x = 1.5 y = 1.5绘制一个矩形,高度为3,宽度为2。这是我的尝试:

% define location of lbwh in terms of x and y values
l = 1.5;
b = 1.5;
w = 2; 
h = 3;

% convert factor of 1
xx = xlim;
l = l./xx(2);
b = b./xx(2);
w = w./xx(2);
h = h./xx(2);

annotation('rectangle','position',[l,b,w,h]);

问题是我提供的位置是根据图中的(0,0)位置而不是图窗口的左下角。我怎么能纠正这个?

1 个答案:

答案 0 :(得分:1)

一种方法是从折线图创建一个矩形:

plot([l,l,l+w,l+w,l],[b,b+h,b+h,b,b], 'r', 'LineWidth', 2)