У меня есть ряд спектральных данных, которые я хочу построить на графике в стиле водопада.
водопад сам по себе не так полезен, потому что тонкие линии имеют слишком много различий в каждом спектре, то есть не очень полезны
Поэтому я хочу попробовать функцию ленты, которая выглядит многообещающе в документах .
.
Но результат совершенно другой и бесполезный!
figure(2); clf;
ribbon(spectralSeries);
shading flat % otherwise complete dark
axis tight
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
Тем не менее, я все еще заинтересован в решении исходной проблемы.
РЕДАКТИРОВАТЬ 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
А вот и с водопадом
hplot = waterfall(spectralSeries);
set( hplot, 'LineWidth', 4 );
hidden off;
и для сравнения график, использующий мой собственный письменный код, который похож на водопад, но без оси глубины. Однако он единственный, который выглядит прилично и отображает кривые данных, так что можно видеть различия между каждой кривой.