グラフの凡例コピー
显示 更早的评论
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
2020-7-13
Line object の順番が代わってしまっているのが要因ですが、例えば
Line_obj = findobj(pHandle,'Type','Line'); % Lineの要素を抽出
を
Line_obj = findobj(ax(1),'Type','Line'); % Lineの要素を抽出
に変えて axes から Line を検索するようにすると順番も維持される模様です。
类别
在 帮助中心 和 File Exchange 中查找有关 Legend 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!