2015-05-08 25 views
7

Aşağıdaki gibi bir çizim görmedim ((a) 'daki çizim). Bu mümkün mü?Matlab çok katlı yığınlar

enter image description here

+2

Bu etkin [şelale arsa] şeklidir (http://en.wikipedia.org/wiki/Waterfall_plot). Bu tür arsanın en ünlü kullanımı [bu pulsar veri] olabilir (http://www.itsokaytobesmart.com/post/96415755382/do-math-realizes-joy-division-did-some-real). Bkz. ['Şelale '] (http://www.mathworks.com/help/matlab/ref/waterfall.html). Bunu birden fazla örtüşen eksenle yapmak (veya onları taklit etmek) biraz iş gerektirecektir. – horchler

cevap

7

@Ander Biguri profil sayfalarına göre

sen nasıl kullanılacağını biliyorsanız Matlab bile, akşam yemeğinin yapabilirsiniz. Bu Tek ihtiyacımız axes komutunun temel bilgidir ;-)

bile mümkün olup olmadığını, soru cevaplar

- Gerisi güzel görünmesi için büküverdiğini.

Bazı örnek verileri oluşturarak başlayacağım: en ona bir göz atalım

fig = figure(1); 
set(fig,'Color','w'); 

Şimdi

t = 100:220; 
x1 = -(10*(t-130)).^2; 
x2 = -(10*(t-150)).^2; 
x3 = -(10*(t-170)).^2; 

Sonra bir beyaz arka planlı bir başlangıç ​​figürü yaratacağız biz üzerinde x1 yeni eksenler nesnesi oluşturabilir ve çizebilirsiniz:

ax(1) = axes('Position',[0.1,0.1,0.6,0.6]); 
plot(ax(1),t,x1+10^4*rand(size(x1)),'-k',t,x1,'-r'); 

Biz bo kaldırırız Eksenlerin etrafında x, böylece sadece x ve y eksenleri kalır. Ayrıca çizimi yeniden boyutlandırıyoruz, böylece diğer iki grafik için yeterli alana sahip olacağız. Rengi hiçbir şekilde, yani saydam olarak da belirleriz.

set(ax(1),'Color','none'); 
set(ax(1),'Box','off'); 
set(ax(1),'Position',[0.1,0.1,0.6,0.6]); 

Şimdi ikinci grafik oluşturmak gerekir. böylece

ax(2) = axes('Position',[0.2,0.2,0.6,0.6]); 
plot(ax(2),t,x2+10^4*rand(size(x2)),'-k',t,x2,'-r'); 
set(ax(2),'Color','none'); 
set(ax(2),'Box','off'); 

ve:

ax(3) = axes('Position',[0.3,0.3,0.6,0.6]); 
plot(ax(3),t,x3+10^4*rand(size(x3)),'-k',t,x3,'-r'); 
set(ax(3),'Color','none'); 
set(ax(3),'Box','off'); 

Ve bu kadar basit, hatta o kadar da kötü görünmüyor şey elde Biz sadece başka eksenler bizim gibi bir pozisyonda itiraz oluşturacaksınız: Horchler önerildiği gibi

the result

+0

Bu referansı daha önce görmedim! Ben çok şirindim ve çok mutluyum! : P –

2

çoklu waterfall araziler kullanma:

%// create some sample data 
t=10:20:110; 
x=0:1:200; 
Y=bsxfun(@(x,t) normpdf(x,t,20),x,t.');               %//' fix the code formatting on SO!! 

%// Make a colormap to to set the colour of the lines 
colormap([1 0 0;0 0 0]);caxis=[0 1]; 

%// Plot the first set of lines (red ones) 
h1=waterfall(x,t,Y,zeros(size(Y))); 
set(h1,'FaceColor','none','LineWidth',2) %// tweak the properties 
hold on 

%// Plot the second set of lines (black lines), just the red lines with some noise 
h2=waterfall(x,t,Y+0.002*(rand(size(Y))-0.5),ones(size(Y))); 
set(h2,'LineWidth',2) 
hold off 

view([16 28]) 

bu alabilirsiniz: enter image description here