我想在我的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)位置而不是图窗口的左下角。我怎么能纠正这个?
答案 0 :(得分:1)
一种方法是从折线图创建一个矩形:
plot([l,l,l+w,l+w,l],[b,b+h,b+h,b,b], 'r', 'LineWidth', 2)