Legend position change after printing

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

回答 (6 件)

Brian Pierre
Brian Pierre 2016 年 6 月 14 日

1 投票

I have the same issue in 2014b. A big problem for a large automated report with thousands of figures.
Abhinav Gupta
Abhinav Gupta 2022 年 5 月 21 日
編集済み: Abhinav Gupta 2022 年 5 月 21 日

1 投票

This problem still exists in the R2021b. It would be great if this could be fixed!
Eric Delaunay
Eric Delaunay 2023 年 1 月 19 日

1 投票

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 件のコメント

Augustin Arrabie-Aubiès
Augustin Arrabie-Aubiès 2023 年 8 月 9 日
It did the trick for me in 2019b, thanks !

サインインしてコメントする。

Rohit Kudva
Rohit Kudva 2015 年 10 月 22 日

0 投票

Hi Junyi,
I work for MathWorks and I have forwarded this feedback to the appropriate product team.
Regards,
Rohit

1 件のコメント

Tizian Felix
Tizian Felix 2017 年 10 月 19 日
What was the answer of the appropriate product team?

サインインしてコメントする。

Thorsten
Thorsten 2016 年 6 月 15 日

0 投票

Use
set(gcf,'PaperPositionMode','auto');
before printing. It works for me (R1015b).
Mark Kerssenfischer
Mark Kerssenfischer 2022 年 12 月 2 日

0 投票

Indeed, I just ran into the same issue in Matlab R2021b.
Please fix it!

カテゴリ

タグ

質問済み:

2015 年 10 月 2 日

Community Treasure Hunt

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

Start Hunting!

Translated by