Scale changes on plots when saving the figure
40 views (last 30 days)
Show older comments
Peter
on 31 Jul 2014
Commented: Steven Hunsinger
on 11 Sep 2023
MATLAB Version: 8.2.0.701 (R2013b)
I create a figure with 4 subplots. When I save the figure using the Figure Menu: File-Save, everything looks fine. If I use the saveas or the print functions, the Y axes change and the representation of the data is incorrect.
Menu Save (Correct):
saveas or print (Incorrect):
%%Save the Figure
jpg_path = '\\usdrdsech1na002\projects$\PUBLIC\PureWaveLinear\Build Info\AcousticMicroscope\TOF_Scans';
set(hc,'PaperOrientation','portrait');
tmp = strfind(tmpname,' ');
tmpname(tmp) = '_'; clear tmp
saveas(hc, fullfile(jpg_path, [tmpname '.jpg']));
%print(hc, '-djpeg', fullfile(jpg_path, [tmpname '.jpg']));
2 Comments
Steven Hunsinger
on 11 Sep 2023
I have the same issue, but the solution above doesn't fix it.
set(gcf, 'InvertHardcopy', 'off');
saveas(gcf, plotfile);
I've tried "exportgraphics" and some of the other solutions but I still get the wrong scale lables on the X axis on all plots on the right side of my tiled plots. Top is the Figure in MATLAB, bottom is the .png. One of the changes I tried:
set(gca,'XTick',Expected(s+1:e,2));
added an extra data point at the end causing 1 to 100 to compress. The plot and the .png matched! But it was still wrong...
>> Expected(s+1:e,2)
ans =
0.0010
0.0100
0.1000
1.0000
9.9999
24.6680
99.9990
Steven Hunsinger
on 11 Sep 2023
update:
f=figure('Position', [500, 200, 1050, 750],'Color','white');
plotdata=tiledlayout(3,2,'TileSpacing','tight', 'Padding','tight'); %hold on;
TileSpacing influence the outcome. With 'loose' we lose resolution on the axis ticks.
Changed figure code (larger scale) and it works:
f=figure('Position', [500, 200, 1120, 800],'Color','white');
Accepted Answer
Namita Vishnubhotla
on 31 Jul 2014
The following code resolves the figure resizing issue:
>> set(fig, 'PaperPositionMode', 'auto');
where 'fig' is your figure handle. You can also just pass 'gcf'.
The 'PaperPositionMode' property (as published in documentation) "ensures that the printed version is the same size as the onscreen version. With 'PaperPositionMode' set to 'auto' MATLAB does not resize the figure to fit the current value of the 'PaperPosition'."
Refer to the various properties listed in the figure properties and axes properties documentation for additional saving and printing settings that may affect the look of your figure when exporting to printer or file.
0 Comments
More Answers (1)
See Also
Categories
Find more on Printing and Saving in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!