tightPlots is a function that allows making single plots or subplots with controlled size and margins. The desired (page) width, aspect ratio and margins must be input, with which the appropriate height is calculated.
This workflow allows for all figures to maintain font formatting when they are inserted into a document/publication. Adjust the width to match the document page width and fix the font size. Narrow plots can then be created by Setting wide side margins.
The function additionally creates a bounding box equal to the figure size on the screen. As a result, what is seen on the monitor can be printed in both raster (.png) and vector (.eps, .pdf) formats with the same result.
tightPlots has been influenced by the "tight_subplot" function of Pekka Kumpulainen, hence, parts of the code and parameter names were kept the same.
Theo Michelis (2020). tightPlots (https://www.mathworks.com/matlabcentral/fileexchange/45380-tightplots), MATLAB Central File Exchange. Retrieved .
Very nice function.
One little thing: Seems to me preallocation og axes in line 144 should be:
ha = gobjects(Nh*Nw,1);
In stead of:
ha = zeros(Nh*Nw,1);
Very helpful for producing good-looking figures! Thanks a lot.
Useful submission! In HG2 versions of MATLAB, the returned values should be of type `handle` and not `double`.
But it needs a slight modification for the new graphics system of post-2014b versions.
Works very well for publications.
Very useful and convenient function, thanks a lot
This function is awesome, finally I can stop using the stupid subplot function!
Clean and easy to use for publication purposes.
It is not supposed to resize a figure. Rather, you create a figure with the desired width for your document and then fill it with axes.
This function does not do figure resize, it cuts off tick labels, code comments are non -standard (H1 line), ....
Changes for compatibility with MATLAB 2014b versions and above.
1) Description extension
Tested with Matlab versions 2012a, 2012b, 2013a, 2013b and 2014a
Change of additional axis settings.
Worked around a cropped bounding box issue when exporting to post script by introducing an additional axis.
Resizing of figure with mouse is no longer allowed. Small change in example 1, for better demonstration.
Inspired by: tight_subplot(Nh, Nw, gap, marg_h, marg_w)
Inspired: smplot for small multiples