2009-11-16 40 views
15

MATLAB'da başka bir arsada bir çizimi nasıl alıp köşeye (ya da herhangi bir yere) yerleştiriyorsunuz?Plot Yerleşimi MATLAB

Grafiğin sağ üst tarafında geniş bir beyaz alana sahip logaritmik verilere sahibim. Beyaz boşlukta, o beyaz boşlukta yakınlaştırılmış versiyonunu içeren daha küçük bir çizimi (büyütülmüş bir görünüm gibi) kaplamak istiyorum.

Bana söyleme yapmadan önce, yapamayacağımı belirtmek isterim. Açıklamam eksikse, bana haber verin ve size daha iyi tanımlamaya çalışacağım.

cevap

19

Bir örnek:

x = 1:20; 
y = randn(size(x)); 

plot(x, y,'LineWidth',2) 
xlabel('x'), ylabel('y'), title('Plot Title') 

h = axes('Position', [.15 .65 .2 .2], 'Layer','top'); 
bar(x,y), title('Bar Title') 
axis(h, 'off', 'tight') 

screenshot

+0

http://stackoverflow.com/questions/22485877/matlab-embed-zoom-in-subgraph-into-the-graph –

8

axes özelliklerini 'position' ve 'units' adreslerinde kullanabilir ve bunları çok fazla yapabilirsiniz. Büyük olanından sonra küçük eksenler oluşturmaya dikkat edin veya uistack() işlevini kullanın, böylece büyük küçük bir küçük gizlemeyi gizlemez.

Yapamayacağınız şey, bir diğerinin eksenlerini yapmaktır (Mathworks'ün legend ile yaptığı gibi). Ama yine de buna ihtiyacın yok.

İkinci arsa için axes ve ve hold on yerine line kullanmanız gerekir.

'normalized' birimi (varsayılan değer), üst şekil yeniden boyutlandırıldığında (örneğin el ile en üst düzeye getirildiğinde) tek tip resize edilebilir görünüme izin verir.