How to get the position of a plot

Hi guys
I can get the position of the entire figure, or the axes easily, but I am interested in getting the position of the actual plot. That is: the inner rectangle. How do I go about doing that?
Cheers

 Accepted Answer

axesPosition = get(axesHandle, 'Position');
There are a few different flavors of 'Position' - choose the one you want. You can use gca if you want the "current" (last used) axes. If you want the figure instead of the axes on the figure, you can use gcf instead of axesHandle.

4 Comments

Jakob Sievers
Jakob Sievers on 27 Nov 2012
Edited: Jakob Sievers on 27 Nov 2012
Using gca gives me the position of the axes (range 0-1) which I understand but am not interested in, and using gcf seems to give me the size of the entire window (range: hundreds). Neither of which are relevant to me however. I need the position of the inner plot.
Position gives you the inner plotting rectangular area. OuterPosition gives you the total outside of the axes which includes labels, tics marks, blank space, etc. I would think that Position should work. See the pictures of what it is in the help for axes properties. How much more "inner" can you get? Can you post a picture of what you need?
Jakob Sievers
Jakob Sievers on 27 Nov 2012
Edited: Jakob Sievers on 27 Nov 2012
I had a look at it again and it appears that you are absolutely correct. The problem, though, is that I am doing "axis equal", "axis tight" and then the call for position: pos=get(gca,'position'); but it doesnt seem to have been updated to the new axes. How do I get around this?
Googling around for a solution I stumbled across this handy tool which solves the problem very easily. Thanks again!

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Object Properties in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!