Legend position change after printing
    23 views (last 30 days)
  
       Show older comments
    
I draw a bar figure and set the legend using
      leg = legend('w/s QOS','w/o QOS','Location','best');
And then I try to save the figure using print
    fig2.PaperPositionMode = 'manual';
    fig2.PaperUnits = 'points';
    fig2.PaperPosition = ([0 0 1920 1080]);
    print('./figure/delay_avg','-djpeg');
The following figure is what I have in Matlab window

and the figure below is the figure saved in the file

As you can see, the position of the legend changes. Is this a bug of Matlab? I'm using R2015a
0 Comments
Answers (6)
  Brian Pierre
 on 14 Jun 2016
        I have the same issue in 2014b. A big problem for a large automated report with thousands of figures.
0 Comments
  Abhinav Gupta
 on 21 May 2022
        
      Edited: Abhinav Gupta
 on 21 May 2022
  
      This problem still exists in the R2021b. It would be great if this could be fixed!
0 Comments
  Eric Delaunay
 on 19 Jan 2023
        Found a workaround :
l = findobj(gcf, 'type', 'legend');
set(l, 'Location', 'none');
before printing. It disables auto layout for legend and uses its current 'position' for printing. It works for me in R2017b.
1 Comment
  Rohit Kudva
    
 on 22 Oct 2015
        Hi Junyi,
I work for MathWorks and I have forwarded this feedback to the appropriate product team.
Regards,
Rohit
1 Comment
  Thorsten
      
      
 on 15 Jun 2016
        Use
set(gcf,'PaperPositionMode','auto');
before printing. It works for me (R1015b).
0 Comments
  Mark Kerssenfischer
 on 2 Dec 2022
        Indeed, I just ran into the same issue in Matlab R2021b.
Please fix it!
0 Comments
See Also
Categories
				Find more on Legend 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!