Legend position change after printing
Afficher commentaires plus anciens
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
Réponses (6)
Brian Pierre
le 14 Juin 2016
1 vote
I have the same issue in 2014b. A big problem for a large automated report with thousands of figures.
Abhinav Gupta
le 21 Mai 2022
Modifié(e) : Abhinav Gupta
le 21 Mai 2022
1 vote
This problem still exists in the R2021b. It would be great if this could be fixed!
Eric Delaunay
le 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 commentaire
Augustin Arrabie-Aubiès
le 9 Août 2023
It did the trick for me in 2019b, thanks !
Rohit Kudva
le 22 Oct 2015
0 votes
Hi Junyi,
I work for MathWorks and I have forwarded this feedback to the appropriate product team.
Regards,
Rohit
1 commentaire
Tizian Felix
le 19 Oct 2017
What was the answer of the appropriate product team?
Thorsten
le 15 Juin 2016
Use
set(gcf,'PaperPositionMode','auto');
before printing. It works for me (R1015b).
Mark Kerssenfischer
le 2 Déc 2022
0 votes
Indeed, I just ran into the same issue in Matlab R2021b.
Please fix it!
Catégories
En savoir plus sur Legend dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!