グラフの凡例コピー

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 を検索するようにすると順番も維持される模様です。

产品

Community Treasure Hunt

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

Start Hunting!