MATLAB ウォーターフォール プロット

Ammar Ali 2023年6月20日
MATLAB ウォーターフォール プロット

このチュートリアルでは、MATLAB の waterfall() 関数を使用してウォーターフォール プロットを作成する方法について説明します。

MATLAB ウォーターフォール プロット

ウォーターフォール プロットはメッシュ プロットに似ています。 また、y 軸にカーテンがあり、プロットに滝のような効果が生まれます。 MATLAB の waterfall() 関数を使用して、3D ウォーターフォール プロットを作成できます。

waterfall() 関数には、以下に示す 6つの構文があります。

waterfall(x,y,z)
waterfall(x,y,z,color)
waterfall(z)
waterfall(z,c)
waterfall(axes,___)
obj = waterfall(___)

最初の構文は、変数 x および y によって指定されたグリッド上にウォーターフォール プロットを作成し、エッジの高さは変数 z から取得されます。 デフォルトでは、waterfall() 関数は z 変数を使用して、プロットに存在するエッジに色を割り当てます。

入力変数 x および y は行列またはベクトルである必要があり、変数 z は行列である必要があり、2 行 2 列である必要があります。 xy が行列の場合、それらのサイズは変数 z のサイズと等しくなければなりません。

2 番目の構文は、エッジの色を設定するために使用され、エッジのデフォルトの色を置き換えます。 色は、エッジの数と同じサイズの行列で、プロット内のすべてのエッジの色を含む必要があります。

たとえば、waterfall() 関数を使用して、ランダム データのウォーターフォール プロットを作成してみましょう。 以下のコードを参照してください。

clc
clear

[x,y] = meshgrid(-6:.3:6);
z = x.*cos(y) + y.*sin(x);
waterfall(x,y,z)

出力:

単純なウォーターフォール プロット

上記のコードで meshgrid() を使用して均一なグリッドを作成しました。 エッジの色は、マトリックス z に従って割り当てられます。

waterfall() 関数の後に colorbar コマンドを使用できます。これにより、ウォーターフォール プロットに沿ってカラー バーが表示され、どの色がどの値に属しているかを確認するために使用できます。

3 番目の構文は、変数 z の高さに従ってウォーターフォール プロットを作成し、z マトリックスのインデックスからグリッド値または xy の値を取得します。 色も z マトリックスから取得されます。

4 番目の構文は、行列 c の行列 z に存在するエッジの色を指定して、c のサイズが z のサイズと等しくなるようにします。 5 番目の構文は、プロットの現在の軸ではなく、axes 変数で指定された軸上にウォーターフォール プロットを作成するために使用されます。

6 番目の構文は、ウォーターフォール プロットのオブジェクトを作成するために使用され、ウォーターフォール プロットのプロパティを表示および変更するために使用できます。 たとえば、上記のコード例を使用して waterfall() 関数のオブジェクトを作成し、そのプロパティを確認してみましょう。

以下のコードを参照してください。

clc
clear

[x,y] = meshgrid(-6:.3:6);
z = x.*cos(y) + y.*sin(x);
p = waterfall(x,y,z);

出力:

p =

  Patch with properties:

    FaceColor: [1 1 1]
    FaceAlpha: 1
    EdgeColor: 'flat'
    LineStyle: '-'
        Faces: [41×46 double]
     Vertices: [1886×3 double]

上記の出力は、ウォーターフォール プロットのいくつかのプロパティを示しています。出力内の Path という単語をクリックすると、すべてのプロパティを表示できます。 関数のオブジェクトとプロパティ名を使用して、ウォーターフォール プロットのプロパティを変更できます。

上記の最初のプロパティFaceColorは、エッジで囲まれた領域の色を表し、デフォルトでは白色に設定されていますが、色名またはRGBトリプレット値を使用して任意の色に変更できます.

EdgeColor プロパティは、デフォルトで行列 z の値を使用して割り当てられるプロット上のエッジまたはポイントの色を表しますが、FaceColor プロパティを変更するのと同じ方法でこのプロパティを変更することもできます .

FaceAlpha および EdgeAlpha プロパティは、プロットに存在する面とエッジの透明度を設定するために使用されます。デフォルトでは 1 に設定されていますが、0 から までの任意の値に設定できます。 1.

LineStyle プロパティは、プロット上の点を結合するために使用される線のスタイルを設定します。デフォルトでは、その値は - のような実線に設定されていますが、-- を使用して破線に設定することもできます 、-. を使用した破線、: を使用した点線、および none を使用した線なし。

LineWidth プロパティは、プロットで使用される線の幅を設定するために使用されます。デフォルトでは、その値は 0.5 に設定されていますが、その値は任意の正の整数に設定できます。

Marker プロパティは、プロット上の点を表すために使用されるマーカーを設定するために使用されます。デフォルトでは、その値は none に設定されていますが、o、ひし形を使用して円に設定できます。 d を使用し、p を使用して五角形など。

MarkerSize プロパティを使用して、デフォルトで 5 に設定されているマーカー サイズを設定し、任意の正の値に設定できます。

MarkerEdgeColor プロパティを使用して、マーカーのエッジ ラインの色を設定し、MarkerFaceColor を使用して、マーカーを色で塗りつぶすために使用されるマーカーの塗りつぶし色を設定できます。デフォルトでは、その値は なし に設定します。

たとえば、上記の例を繰り返して、上記のプロパティを変更してみましょう。 以下のコードを参照してください。

clc
clear

[x,y] = meshgrid(-6:1:6);
z = x.*cos(y) + y.*sin(x);
p = waterfall(x,y,z);
p.FaceColor = 'white';
p.EdgeColor = 'red';
p.LineStyle = '-.';
p.LineWidth = 1;
p.Marker = 'd';
p.MarkerSize = 10;
p.MarkerEdgeColor = 'green';
p.MarkerFaceColor = 'yellow';

出力:

ウォーターフォール プロットのプロパティ

上記のコードでは、ウォーターフォール プロットのいくつかのプロパティを変更しましたが、他の多くのプロパティも変更できます。 ウォーターフォール プロットのプロパティの詳細については、この リンク を確認してください。

waterfall() 関数の詳細については、この リンク を確認してください。

著者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

関連記事 - MATLAB Plot