2012-02-22 4 views
2

У меня есть ряд спектральных данных, которые я хочу построить в загородном стиле водопада. водопада itsself нет, что Usefull, так как тонкие линии имеют слишком много различий в каждом спектре, то есть не очень полезноучасток водопада с использованием ленты

поэтому я хочу попробовать функцию ленты, которая выглядит многообещающей в docs .

Но результат совершенно другой и бесполезный!

figure(2); clf; 
ribbon(spectralSeries); 
shading flat % otherwise complete dark 
axis tight 

enter image description here

EDIT:

теперь я создал ручной водопад сюжет, который близок к тому, что я хотел:

hold on; 
stepsize = 0.35; 
for k = length(series):-1:1 
    color = cmap(k,:); 
    data = spectralSeries(k,:) + (k-1)*stepsize; 

    hplot(k) = filledcurve(xaxis, data, 0);  
    set(hplot(k), 'FaceColor' , color*1.2) 
    set(hplot(k), 'EdgeColor' , color*0.5)  
end 
hold off; 
axis tight 

enter image description here

Тем не менее я до сих пор заинтересованы в решении оригинального проблема.

EDIT 2:

Вот пример, используя те же данные с водопадом, лентой и мой пользовательский код. Только мой код полезен для визуализации данных. Я все же хотел бы знать, как сделать ленту и водопад выглядеть как приличный сюжет ...

Этот код теперь используется для создания некоторых данных

xaxis = linspace(-pi/2,3/2*pi, 1000); 
variation = [ 0.5 1 5 10]; 
spectralSeries = abs(sin(xaxis)'*ones(1,4) + sin(xaxis'*variation)*0.25); 

Вот результат использования лентой

ribbon(spectralSeries); 
shading flat % otherwise complete dark 
axis tight 

enter image description here

А вот с водопадом

hplot = waterfall(spectralSeries); 
set(hplot, 'LineWidth', 4); 
hidden off; 

enter image description here

и для сравнения сюжета, используя свой собственный написанный код, который похож на водопад, но без оси глубины. Однако он является единственным, который выглядит прилично и отображает кривые данных, так что можно увидеть изменения между каждой кривой.

enter image description here

+0

Что вы хотите, чтобы результат выглядел? – user1071136

+0

, по крайней мере, похоже на график, показанный на документе matlab: http://www.mathworks.de/help/techdoc/ref/ribbon.html –

+0

Как выглядят ваши данные?Каковы его размеры? – user1071136

ответ

2

Вы все еще можете использовать waterfall, но установить некоторые patch и axes свойства, чтобы получить более хороший выход. Важно отметить, что spectralSeries должен быть транспонирован.

figure 
xaxis = linspace(-pi/2,3/2*pi, 200); 
variation = [ 0.5 1 5 10 7 3.5 8]; 
spectralSeries = abs(sin(xaxis)'*ones(1,7) + sin(xaxis'*variation)*0.25); 
h = waterfall(spectralSeries'); 
cameratoolbar; 

%% 
set(h, 'FaceColor', 'flat'); 
set(h, 'FaceAlpha', 0.7); 
set(h, 'EdgeColor', 'k'); 
set(h, 'FaceVertexCData', rand(7,3)) 
set(gca, 'Color', [1 1 1]*0.85) 
set(gca, 'GridLineStyle', 'none'); 

%% 
myaa 

(опция) Последнее утверждение, myaa, производит сглаживание фигуры; получить скрипт here.

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^