How to set the Attribute possition in a annotation of type rectangle
Show older comments
I made a figure, in that I generated a grid of size say N=5 M=8, and I want to highlight the region between (5,2:end-1) in other color. What I did was make the grid in matlab and then generate the M-file for the case rows=N=5 columns=M=8, then in that figure I insert a rectangle with other color in the area I want to highlig and generate the M-file of the rectangle to obtain its position, and add it at the end of the grid code . Now what I want to do is generalize the code for any value of M or N, so for any value of N, M of the grid the region between (N,2:end-1)is highlated in other color. I could generalize the code of the grid by replacing 5 by N and 8 by M. but I am having problems with the position of the rectangle which are the last two lines of the code. I can not figure out how to set the vertical position of the retangle in terms of the size of the grid (N,M) here some code:
function CreateFigureGrid(N,M)
%CREATEFIGURE
% Auto-generated by MATLAB on 19-Nov-2010 16:49:38
% Create figure
%figure1 = figure('PaperSize',[20.98 29.68]);
figure1 = figure();
% Create axes
axes1 = axes('Parent',figure1,'YTick',0:N,'YGrid','on',...
'XTick',0:M,...
'XGrid','on',...
'XTickLabel',[],...
'YTickLabel',[],...
'Position',[0.1368 0.1153 0.775 0.815],...
'PlotBoxAspectRatio',[M N 1],...
'GridLineStyle','-',...
'DataAspectRatio',[1 1 1]);
% Uncomment the following line to preserve the X-limits of the axes
xlim(axes1,[0 M]);
% Uncomment the following line to preserve the Y-limits of the axes
ylim(axes1,[0 N]);
box(axes1,'on');
hold on
text(0.4,0.5,'S','FontName','Courier New');
text(M-.6,.5,'G');
annotation(figure1,'rectangle','FaceColor',[0.8471 0.1608 0],...
'Position',[.1368+.775/M 0.2024 (.775/M)*(M-2) 0.127]);
% Here are some other examples on how the position change with
%other values of N and M
%[0.2351 0.2024 0.5774 0.127] M=8 N=5
% [0.2143 0.2659 0.619 0.1032] M=10 N=5
% [0.1771 0.3948 0.6949 0.05159] M=20 N=5
.1368 is the x-value of the low-left corner of the axis .775 is the width of the box, I try to do the same with the y-values but itdoes not work, I am missing somenthing maybe the aspect ratio is involved in any way but I could not figure it out I will appreciate any help
Accepted Answer
More Answers (1)
Maider Marin
on 17 May 2011
Categories
Find more on Subplots in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!