2

ウォーターフォールスタイルのプロットにプロットしたい一連のスペクトルデータがあります。細い線は各スペクトルであまりにも多くの違いがあるため、滝自体はそれほど有用ではありません。それはあまり有用ではありません。

したがって、ドキュメント で有望に見えるリボン関数を試してみたいと思います。

しかし、結果は完全に異なり、役に立たない!

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;

ここに画像の説明を入力してください

比較のために、私自身が書いたコードを使用したプロット。これは滝に似ていますが、深さ軸がありません。しかし、それはまともなように見え、各曲線間の変化が見えるようにデータ曲線を表示する唯一のものです。

ここに画像の説明を入力してください

4

1 に答える 1

2

を引き続き使用できますが、より良い出力を得るためにいくつかのプロパティをwaterfall設定します。注意すべき重要なことは、転置する必要があるということです。patchaxesspectralSeries

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は、アンチエイリアス処理された図を生成します。ここでスクリプトを入手してください。

ここに画像の説明を入力してください

于 2012-03-14T07:40:55.657 に答える