2012-05-07 1 views
4

私は3次元データをMATLABにプロットしています。データセットは、私は高さ(すなわち垂直線)で表示されたくないため除い滝でZをプロットしようとしています、このようなmatlabの滝のプロットのバリエーションをお探しですか

x = 0:0.01:15; 
    x0 = 0.5; 
    y = [beta1, beta2, beta3, beta4, beta5, beta6, beta7, beta8, beta9, beta10]; 
    Z(1, :) = A*exp(-(x-x0).^2/beta1); 
    Z(2, :) = A*exp(-(x-x0).^2/beta2); 
    Z(3, :) = A*exp(-(x-x0).^2/beta3); 
    Z(4, :) = A*exp(-(x-x0).^2/beta4); 
    ... 
    Z(10, :) = A*exp(-(x-x0).^2/beta10); 
    % here A could be change based on beta too (no code shown here) 

としてy方向に沿って異なるパラメータで10本の指数曲線を積み重ねることによって構築されていますはしっこ。私は滝のような曲線としてデータをプロットする他の方法があるかどうかわかりませんが、それらの垂直線はありません。おかげ

how to get rid the vertical lines as circled in the following figures

+0

あなたはは、plot3を試してみましたか? – Rasman

+0

plot3を使う問題は、1)面2のパッチではなく線でプロットされます。plot3(x、y、z)はxとyの間で同じ次元が必要ですが、私の場合は同じではありません。 – user1285419

答えて

2

は、「それは表面で代わりにパッチの線でプロットされています」。
つまり、境界線を非表示にします。境界線は、あなたが直接含めることができる任意の配色とは別個であるので、それはまったくの偉業ではありません。必要な作業は、描画後にデータを取得し、それに応じて変更することです。

CD(end-2:end-1,:)が落下境界のためであり、CD(end,:)は下のためのものであるCD(1,:)は、「上昇」の境界のためのものであることを

[X,Y,Z] = peaks(30); 
h = waterfall (X,Y,Z); 
CD = get (h, 'CData'); 
CD(1,:) = nan; 
CD(end-2:end,:) = nan; 
set (h, 'CData', CD) 

ノート。

+1

ありがとうラスマン。それは素晴らしい作品です。ちょっとおもしろいですが、ゼロ以下の領域を透明にする方法はありますか?とにかくありがとう。 – user1285419

+1

FaceAlphaを変えて、1( 'set(h、 'FaceAlpha'、0.3)')の値よりも小さくすることができますが、全体の境界線のカラースキームが必要になります。私はこれを補う別の方法があると確信しています、私はそれを考え出していません – Rasman

+0

とにかくありがとうございました:) – user1285419

1

私は、これは古い記事ですけど、下の透明曲線下の領域を行います:

figure; 
[X,Y,Z] = peaks(10); 
handle_figure = waterfall(X, Y, Z); 
set(handle_figure, 'FaceColor', 'none'); 
関連する問題