заговор с водопадом с помощью ленты

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

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

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

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

введите здесь описание изображения

РЕДАКТИРОВАТЬ:

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

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;

введите здесь описание изображения

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

введите здесь описание изображения


person Matthias Pospiech    schedule 22.02.2012    source источник
comment
Как вы хотите, чтобы результат выглядел?   -  person user1071136    schedule 07.03.2012
comment
по крайней мере, похоже на график, показанный в документе Matlab: mathworks.de/help/ techdoc/ref/ribbon.html   -  person Matthias Pospiech    schedule 08.03.2012
comment
Как выглядят ваши данные? Каковы его размеры?   -  person user1071136    schedule 08.03.2012
comment
Я добавил числовые данные, чтобы другие могли создавать более привлекательные примеры.   -  person Matthias Pospiech    schedule 11.03.2012
comment
Вы не объясняете, почему ленточный график плохой (он показывает разницу между разными волнами). Это затенение? цвета? До сих пор довольно сложно понять, какой сюжет вас интересует. Если ваш вопрос общий, как это можно сделать лучше, то он не совсем подходит для StackOverflow... Если вы опубликуете изображение похожего сюжета на то, что вы ищете, люди могут попытаться воспроизвести это.   -  person user1071136    schedule 12.03.2012
comment
Вот два примера, которые выглядят так, как я и ожидал: 2.bp.blogspot.com/_jYbplShnbn8/Siuper9GD6I/AAAAAAAAAAFI/ и austringer.net /images/biosonar/wfall_demo.png   -  person Matthias Pospiech    schedule 13.03.2012
comment
Пожалуйста, поместите изображения прямо в вопрос, на случай, если blogspot перестанет его размещать. Кроме того, я бы рекомендовал удалить всю часть EDIT 2.   -  person user1071136    schedule 14.03.2012


Ответы (1)


Вы по-прежнему можете использовать 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, создает сглаженную фигуру; получите скрипт здесь.

введите здесь описание изображения

person user1071136    schedule 14.03.2012