How can I save my figure to eps AND keep white margins (from my defined figure and axes position)?
6 views (last 30 days)
Show older comments
I am producing multiple figures which I then need to vertically align in latex. I set my figure and axes position like this:
% Set figure total dimension
set(gcf,'Units','centimeters')
set(gcf,'Position',[0 0 4.5 5.8])
% Set size and position of axes plotting area within figure dimensions. To
% keep vertical axes aligned for multiple figure keep the horizontal
% position consistent
set(gca,'Units','centimeters')
set(gca, 'Position',[1.5 1.3 2.85 4])
Some of my figures have a ylabel and some don't, which thanks to the above set position does not affect the format of the figure. However when I save my figure to eps using
saveas(gcf,'filename','epsc')
the eps file saves it as the tightest fit, ignoring my set positions. How can I get it to save whilst conserving my set formatting?
I've tried saving to .png but the quality is massively reduced (even when using the package export_fig). Is there a simple solution?
I am on MacOs.
0 Comments
Accepted Answer
Jatin
on 23 Aug 2024
If we go through the documentation of “Printing and Exporting” property of figure then we can see that we should use “PaperPosition” and “PaperUnits” as properties rather than “Position” and “Units” for the figure object while printing or exporting.
Updating your code as below should give you the desired results:
% Set figure total dimension
set(gcf,'PaperUnits','centimeters')
set(gcf,'PaperPosition',[0 0 4.5 5.8])
You can also go through the following MATLAB Answer and MathWorks documentation for more information on “Printing and Exporting” property of figure:
More Answers (0)
See Also
Categories
Find more on Printing and Saving 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!