Matlab 2014b: Copying just the legend from existing figure into subplot

26 ビュー (過去 30 日間)
Ashley Penna
Ashley Penna 2014 年 11 月 19 日
編集済み: Matt J 2014 年 11 月 19 日
Hi there,
I'm looking for how to get the legend from an existing saved figure and load it as the legend in a figure of subplots.
In 2013 I used to be able to do:
h1 = hgload('file.fig');
leg_ax = findobj(h1,'type','axes','Tag','legend','-not','Tag','Colorbar');
s6 = subplot(2,3,3);
copyobj(leg_ax,get(s6,'Parent'));
Thanks, Ashley

採用された回答

Matt J
Matt J 2014 年 11 月 19 日
編集済み: Matt J 2014 年 11 月 19 日
One way is to save and reuse just the legend object itself, e.g.,
plot(1:5,2:6,1:5,0:4);
hleg=legend('First Line', 'Second Line');
save tst hleg
clear hleg
load tst hleg
figure;
s6 = subplot(2,3,3);
plot(10:10:50,(2:6).^2,10:10:50,(0:4).^2);
legend(hleg.String{:})
  3 件のコメント
Matt J
Matt J 2014 年 11 月 19 日
h1=hgload(...)
hleg=findobj(h1,'Type','Legend');
s6 = subplot(2,3,3);
legend(hleg.String{:});
Ashley Penna
Ashley Penna 2014 年 11 月 19 日
Excellent, that worked! Thanks for your help, Matt.

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

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2014 年 11 月 19 日
h1 = hgload('file.fig');
leg_ax = findobj(h1,'type','axes','Tag','legend','-not','Tag','Colorbar');
figure
s6 = subplot(2,3,3);
copyobj(leg_ax,get(s6,'Parent'));
  2 件のコメント
Ashley Penna
Ashley Penna 2014 年 11 月 19 日
In 2013 the "leg_ax" line no longer works since a legend isn't an axes any longer.
Azzi Abdelmalek
Azzi Abdelmalek 2014 年 11 月 19 日
The handles can not be used if the object is deleted

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

カテゴリ

Help Center および File ExchangeLegend についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by