MATLAB

2010-08-30 43 views
13

'da yeniden ölçeklendirmeksizin eksenlerin dışında bir gösterge ekle MATLAB'da önceden yerleştirilmiş bir eksen kümesiyle bir GUI var. Efsanenin konumunu, eksenlerin sağ tarafına yerleştirmek için kullanıyorum. Ancak, bunu yaparak eksenler yeniden ölçeklenir, böylece eksen + lejant eksenlerin orijinal genişliğini alır. Yeniden boyut atlatmak için herhangi bir yolu var mı?MATLAB

Örnek:

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) 

Şimdiye kadar olsun:

alt text

Yeri efsanesi:

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

... aaaaand ...

01 MATLAB her şeyi orijinal eksen alanına sıkıştırır. Bunun herhangi bir yolu var mı?

cevap

8

DÜZENLEME

%# 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

+0

Evet, otomatik olarak yapılır, ama aynı anda edinme gelen hangi arsa ayrı veri setleri dikey yığılmış eksenleri üç grup olduğunu biliyorum. Etiketler tarih damgasıdır, bu yüzden sadece bir efsaneye ihtiyacım var. Sorun sadece efsaneyi sadece merkeze eklediğimde, diğer ikisi artık sıraya girmiyor. Ben GUI sonunda bir efsane için yeterli yer var ve ben orada yerleştirmek istiyorum. – Doresoom

+1

'Position' özelliğini her zaman el ile düzeninize uyacak şekilde ayarlayabilirsiniz – Amro

+0

@Doresoom: Yukarıdaki fikri kullanarak bir örnek ekledim. – Amro