Legend error. What did I do wrong here?
16 次查看(过去 30 天)
显示 更早的评论
I have 9 figures as per attached to make comparisons for the length, width and height using similar codes as below (this one was used for the width comparison).
I don't know why the legend for the plots of length and height comparions are correct but it is wrong for the width comparison. How to fix please?
if true
fig = figure(16);
ax = axes(fig);
xlabel('\xi');
ylabel(' \omega(\xi,\tau)');
title('Varying injection rates vs fracture width');
h1 = openfig('width0.fig','reuse');
h2 = openfig('width1.fig','reuse');
h3 = openfig('width2.fig','reuse');
copyobj(h1.Children.Children,ax);
copyobj(h2.Children.Children,ax);
copyobj(h3.Children.Children,ax);
close(h1);
close(h2);
close(h3);
end
hold on
legend('\alpha=0','\alpha=1/9','\alpha=1/10','location', 'northeast')



1 个评论
采纳的回答
Adam Danz
2020-10-2
编辑:Adam Danz
2020-10-2
The "width" figures contain multiple lines on top of each other just like in your last question.
h = openfig('width0.fig');
h.Children.Children
% 2×1 Line array:
%
% Line
% Line
You'll see two line objects. If you only want to copy one of them,
copyobj(h.Children.Children(1),ax);
% ^^^
9 个评论
Adam Danz
2020-11-2
"data 1, data2, data 3,..." appears in the legend when the graphics objects do not contain a value for DisplayName as my comment above indicates. If you didn't assign a DisplayName value when you created those lines, then you'll have to recreate the legend from scratch after copying the lines.
fig1 = figure();
ax1 = axes(fig1);
hold on
h1 = openfig('width0.fig','reuse');
h2 = openfig('width1.fig','reuse');
h3 = openfig('width2.fig','reuse');
copyobj(h1.Children.Children,ax1);
copyobj(h2.Children.Children,ax1);
copyobj(h3.Children.Children,ax1);
close(h1);
close(h2);
close(h3);
xlabel('\xi');
ylabel(' \omega(\xi,\tau)');
title(ax1,'Varying injection rates vs fracture width');
leg=legend(ax1,'\alpha=0','\alpha=1/9','\alpha=1/10','location', 'northeast');
This assumes there 3 objects that are copied, since there are 3 strings defined in legend().
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Legend 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




