This function returns the position of the plotted region of an axis, which may differ from the actual axis position, depending on the axis limits, data aspect ratio, and plot box aspect ratio. The position is returned in the same units as the those used to define the axis itself. This function can only be used for a 2D plot.
Thank you very much, it is precisely what I needed.
This is a very useful function. Thanks for making it available. It would be really great if you could suggest how to modify this to include xlabel, ylabel, title and and as well as colorbars in the current axis position. I succeeded in including xlabel, ylabel and title by using "TightInset" property, but i am unable to find anyway to include colorbar.
Is there any way to view the readme file for plotboxpos that does NOT require using GitHub?
Just what I needed. Neatly coded. Thanks.
As noted in the help, this function is only intended for 2D plots. The math gets much messier for 3D; if someone else wants to figure those calculations out I'd be happy to incorporate them, but I don't really have the motivation to do so myself. I've updated the description on this page to reflect this limitation.
Nice function, but it does not work for 3d plots with daspect([1 1 1]) !
Please ignore my previous comment. It DOES work with colorbar present.
This function does a great job. However, when the colorbar is present in the figure, the function returns the plotted axis region as if a colorbar doesn't exist. I was graphing a pcolor plot with the colorbar on when I discovered this.
Saves me lot of time, thanks!
Brilliant little function. Cheers!
Thank you Kelly for solving a problem I've had for months. This function is well written. You've saved me a world of headaches.
Works as advertised - thanks.
Thanks so much. That's awesome!
This is fantastic. Thanks.
Finds the position of the axes after modifying the DataAspectRatio and PlotBoxAspectRatio. This is exactly what I need, thanks!
Very useful function, thanks.
It's missing only a little test like:
if nargin < 1
h = gca;
and your function becomes perfect !
Carlos, getInUnits.m is available in the File Exchange: (http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=8898&objectType=file). Sorry for the confusion; I will update the documentation on this page to clarify this.
Kelly, getInUnits does not exist, as far as I can tall, as a MATLAB function.
Updated description to match the one on GitHub.
Linked to GitHub repository
- verified for R2014b graphics
Now defaults to current axis if no input provided. Also updated example image to a simpler one.
Small rewrite to remove dependency on external functions
Fixed incorrect behavior when aspect ratios set to 'auto', and some bugs regarding plot box aspect ratio.
Clarified use of another File Exchange function (getInUnits.m).
Create scripts with code, output, and formatted text in a single executable document.