2011-02-16 19 views
43

Tek bir şekilde birden çok alt nokta var. Her arsanın X ekseni aynı değişkendir (zaman). Her arsadaki Y ekseni farklıdır (hem temsil ettiği hem de verinin büyüklüğü).MATLAB - Alt pikselleri nasıl yakınlaştırırsınız?

Tüm grafiklerde aynı anda zaman ölçeğini büyütmek için bir yol istiyorum. İdeal olarak, dikdörtgensel zum aracını bir parselde kullanarak ve diğer parsellere sahip olmak X sınırlarını buna göre değiştirir. Y sınırları, tüm bunlar için değişmeden kalmalıdır. Grafiği Y yönünde doldurmak için verileri otomatik olarak kabul etmek kabul edilebilir.

linkaxes([hAxes1,hAxes2,hAxes3], 'x'); 

daha gelişmiş bağlama için (:

+1

Bu soru çözüm olarak geçerlidir iyi (builtin fonksiyonu kullanarak ** LINKAXES **): http://stackoverflow.com/questions/5018310/creating-several-boxplots-with-the-same-scale-in-matlab/5018523#5018523 – Amro

cevap

25

linkaxes kullanın Yair ve Amro zaten önerdi. Aşağıdaki Aynı anda

pek çok subplots ve onların eksenleri toplayarak tek tek zeki bir şekilde görünmüyor tanıtıcı Eğer

tüm subplots yakınlaştırmak gerekir sizin durumunuzda

ha(1) = subplot(2,1,1); % get the axes handle when you create the subplot 
plot([1:10]);   % Plot random stuff here as an example 
ha(2) = subplot(2,1,2); % get the axes handle when you create the subplot 
plot([1:10]+10);  % Plot random stuff here as an example 

linkaxes(ha, 'x');  % Link all axes in x 

için hızlı bir örnektir işi yapmak için, önce hat Çeşidi figure_handle altındaki tüm nesneleri bulduğu tüm eksenler aşağıdaki komutları

figure_handle = figure; 
subplot(2,1,1); 
plot([1:10]); 
subplot(2,1,2); 
plot([1:10]+10); 

% find all axes handle of type 'axes' and empty tag 
all_ha = findobj(figure_handle, 'type', 'axes', 'tag', ''); 
linkaxes(all_ha, 'x'); 

tarafından verilen rakam sapı ele bulabilirsiniz ('') "eksenleri" ve boş etiket. Boş etiketin durumu, etiketi legend olacak olan efsanelerin balta tutamaçlarını hariç tutmaktır.

Sadece basit bir çizimden ibaret değilse, figürünüzde başka eksen nesneleri olabilir. Böyle bir durumda, eksenin ilgilendiğiniz parsellerin kolları tespit etmek daha koşullar eklemek gerekir

+0

teşekkürler! bu harika çalışıyor – portforwardpodcast

0

linkaxes ile figürlerin bir çift bağlamak için kullanın.

figure;imagesc(data1); 
f1h=findobj(gcf,,’type’,’axes’) 
figure;imagesc(data2); 
f2h=findobj(gcf,,’type’,’axes’) 
linkaxes([f1h,f2h],’xy’)