أضف أسطورة خارج المحاور دون إعادة القياس في ماتلاب
سؤال
لقد حصلت على واجهة المستخدم الرسومية في Matlab مع مجموعة من المحاور مسبقًا. أنا أستخدم خاصية موقع الأسطورة لوضعها على الجانب الأيمن من المحاور. ومع ذلك ، من خلال القيام بذلك ، يتم إعادة صياغة المحاور بحيث تتناول المحاور+أسطورة العرض الأصلي للمحاور. هل هناك أي طريقة للتحايل على إعادة الحجم؟
مثال:
x=0:.1:10;
y=sin(x);
figure
pos=get(gca,'position');
pos(3)=.5; %#re-size axes to leave room for legend
set(gca,'position',pos)
plot(x,y)
حتى الآن أحصل على:
ضع الأسطورة:
legend('sin(x)','location','eastoutside')
... aaaaand ...
Matlab يسحق كل شيء في مساحة المحاور الأصلية. بأي طريقة حول هذا؟
المحلول
تعديل
%# create three axes with custom position
x=0:.1:10;
y=sin(x);
hAx1 = axes('Position',[0.05 0.05 0.7 0.2]); plot(hAx1, x,y)
hAx2 = axes('Position',[0.05 0.4 0.7 0.2]); plot(hAx2, x,y)
hAx3 = axes('Position',[0.05 0.75 0.7 0.2]); plot(hAx3, x,y)
%# add legend to middle one
h = legend(hAx2, 'sin(x)'); pos = get(h,'position');
set(h, 'position',[0.8 0.5 pos(3:4)])
لا تنتمي إلى StackOverflow