أضف أسطورة خارج المحاور دون إعادة القياس في ماتلاب

StackOverflow https://stackoverflow.com/questions/3602571

  •  25-09-2019
  •  | 
  •  

سؤال

لقد حصلت على واجهة المستخدم الرسومية في 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)

حتى الآن أحصل على:

alt text

ضع الأسطورة:

legend('sin(x)','location','eastoutside')

... aaaaand ...

alt text

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)])

alt text

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top