Automatically remove white space from figure

380 views (last 30 days)
RuiQi
RuiQi on 16 Jul 2017
Commented: Klas Lindgren on 25 Apr 2023
How do I remove the white space from the figures ? I don't want to have to save the image then manually crop it.
Instead of Matlab's dumb figure it would be something like
smart_figure('NoWhiteSpace');
plot(..);
or
figure;
plot(..);
smart_clean('NoWhiteSpace');
Is there such a function ?

Answers (5)

Pankaj
Pankaj on 7 Oct 2018

Image Analyst
Image Analyst on 3 Dec 2020
Try the new exportgraphics() function.
  4 Comments

Sign in to comment.


Surender Raj
Surender Raj on 3 Dec 2020
This problem can be addressed manually in Export setup. Once figures are done File--> Export setup --> Size --> Check expand axes to fill figures.
  2 Comments
Tong Zhao
Tong Zhao on 29 Jul 2022
Thank you, it worked, but I have an additional question: when the axes fills the figure, it breaks the aspect ratio of the content. How can I make sure that the aspect ratio stays the same when filling?
Image Analyst
Image Analyst on 29 Jul 2022
What is in your axes? Line plots? Images? If it's images, use
axis('on', 'image');
to make sure the aspect ratio is correct.

Sign in to comment.


Image Analyst
Image Analyst on 16 Jul 2017
Attach images showing what you have and what you want.
You can change the amount of gray padding about your axes by setting the Position property of the axes.

Julia
Julia on 11 Jun 2021
I find the following really useful:
First, assemble your figure as you normally would. Then, try this:
I0 = getframe;
imwrite(I0.cdata, fullfile(path,'image.png'))
I have the impression that it needs some time for saving, so if used in code where stuff happens after this line it can sometimes give weird results. If you have the figure ready and then execute the code from the command line, it normally works beautifully.

Tags

Community Treasure Hunt

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

Start Hunting!