グラフの凡例コピー

11 ビュー (過去 30 日間)
Mamoru Mabuchi
Mamoru Mabuchi 2020 年 7 月 13 日
回答済み: michio 2020 年 7 月 13 日
Figure1で作図したラインと凡例をFigure2へコピーしたいです。
ラインは正しくコピーできるのですが、凡例は、色の順番が変わってしまいます。
コピーする前と同じ順番で凡例をコピーしたいのですが、どのようにすれば良いですか?
%% プロット1
fig = figure(1);
ax(1) = axes('Position',[0.1000 0.1000 0.8182 0.8182]);
pHandle = plot([0 1],[1 1],[0 1],[2 2],[0 1],[3 3],[0 1],[4 4]);
lgd = legend('1','2','3','4');
%% プロット2
fig = figure(2);
ax(2) = axes('Position',[0.1000 0.1000 0.8182 0.8182]);
Line_obj = findobj(pHandle,'Type','Line'); % Lineの要素を抽出
copyobj(Line_obj,ax(2)); % Lineの要素をコピー
lgd_obj = lgd.String;
legend(lgd_obj); % legendの表示

回答 (1 件)

michio
michio 2020 年 7 月 13 日
Line object の順番が代わってしまっているのが要因ですが、例えば
Line_obj = findobj(pHandle,'Type','Line'); % Lineの要素を抽出
Line_obj = findobj(ax(1),'Type','Line'); % Lineの要素を抽出
に変えて axes から Line を検索するようにすると順番も維持される模様です。

カテゴリ

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

製品

Community Treasure Hunt

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

Start Hunting!