メインコンテンツ

waterfall

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

  • Waterfall plot

説明

waterfall(X,Y,Z) はウォータフォール プロットを作成します。ウォータフォール プロットは、y 次元に沿って部分的にカーテンを持つメッシュ プロットです。その結果 "ウォータフォール" 効果が得られます。この関数は行列 Z の値を、XY で定義される xy 平面のグリッドの上の高さとしてプロットします。エッジの色は、Z で指定された高さに従って異なります。

waterfall(X,Y,Z,C) は、さらにエッジの色を指定します。

waterfall(Z) はウォータフォール プロットを作成し、Z の要素の列インデックスと行インデックスを x 座標および y 座標として使用します。

waterfall(Z,C) は、さらにエッジの色を指定します。

waterfall(___,Name=Value) は、1 つ以上の名前と値の引数を使用してウォータフォール プロットのプロパティを設定します。たとえば、プロットのエッジの色と太さを指定できます。プロパティの一覧については、Patch のプロパティ を参照してください。 (R2024b 以降)

waterfall(ax,___) は、現在の座標軸ではなく、ax で指定される座標軸にプロットします。座標軸を最初の入力引数として指定します。この引数は、前述の任意の入力構文で使用できます。

p = waterfall(___) は、patch オブジェクトを返します。ウォータフォール プロットを作成した後で変更を加えるには、p を使用します。プロパティの一覧については、Patch のプロパティ を参照してください。

すべて折りたたむ

同じサイズの 3 つの行列を作成します。次に、それらをウォータフォール プロットとしてプロットします。メッシュ プロットでは、Z を高さと色の両方に使用します。

[X,Y] = meshgrid(-3:.125:3);
Z = peaks(X,Y);
waterfall(X,Y,Z)

Figure contains an axes object. The axes object contains an object of type patch.

4 番目の行列入力 C を使用して、ウォータフォール プロットの色を指定します。ウォータフォール プロットでは、高さに Z、色に C が使用されます。カラー バーをグラフに追加して、C のデータ値がカラーマップの色にどのように対応するかを示します。

[X,Y] = meshgrid(-3:.125:3);
Z = peaks(X,Y);
C = gradient(Z);
waterfall(X,Y,Z,C)
colorbar

Figure contains an axes object. The axes object contains an object of type patch.

ウォータフォール プロットを作成します。その後の変更を可能にするには、patch オブジェクトを変数 p に代入します。

[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
p = waterfall(X,Y,Z)

Figure contains an axes object. The axes object contains an object of type patch.

p = 
  Patch with properties:

    FaceColor: [1 1 1]
    FaceAlpha: 1
    EdgeColor: 'flat'
    LineStyle: '-'
        Faces: [21×26 double]
     Vertices: [546×3 double]

  Show all properties

ウォータフォール プロットの作成後に、そのプロパティへのアクセスおよび変更を行うには、p を使用します。たとえば、プロットのエッジの色を変更するには、EdgeColor プロパティを設定します。

p.EdgeColor = 'b';

Figure contains an axes object. The axes object contains an object of type patch.

入力引数を転置することにより、部分的なカーテンを (y 次元ではなく) x 次元に沿って表示します。

[X,Y] = meshgrid(-3:.125:3);
Z = peaks(X,Y);
waterfall(X',Y',Z')

Figure contains an axes object. The axes object contains an object of type patch.

入力引数

すべて折りたたむ

x 座標。Z と同じサイズの行列、または、Zmn 列の行列であるとき長さが n のベクトルとして指定します。XY の値を指定しない場合、waterfall はベクトル (1:n) とベクトル (1:m) を使用します。

patch オブジェクトの XData プロパティに x 座標が格納されます。

例: X = 1:10

例: X = [1 2 3; 1 2 3; 1 2 3]

例: [X,Y] = meshgrid(-5:0.5:5)

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical

y 座標。Z と同じサイズの行列、または、Zmn 列の行列であるとき長さが m のベクトルとして指定します。XY の値を指定しない場合、waterfall はベクトル (1:n) とベクトル (1:m) を使用します。

patch オブジェクトの YData プロパティに y 座標が格納されます。

例: Y = 1:10

例: Y = [1 1 1; 2 2 2; 3 3 3]

例: [X,Y] = meshgrid(-5:0.5:5)

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical

z 座標。行列として指定します。Z は少なくとも 2 行 2 列でなければなりません。

Z は、各 x-y 座標でのウォータフォール プロットの高さを指定します。色を指定しない場合、Z はプロット エッジの色も指定します。

patch オブジェクトの ZData プロパティに z 座標が格納されます。

例: Z = [1 2 3; 4 5 6]

例: Z = sin(x) + cos(y)

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical

色インデックス配列。Zmn 列であるとき、mn 列のカラーマップ インデックスの行列として指定します。ウォータフォール プロットの各グリッド点について、C はカラーマップ内の色を示します。patch オブジェクトの CDataMapping プロパティは、C の値がカラーマップの色にどのように対応するかを制御します。

patch オブジェクトの CData プロパティには色配列が保存されます。プロットのカラーリングをさらに制御するには、FaceColor プロパティと EdgeColor プロパティを使用します。

ターゲット座標軸。Axes オブジェクトとして指定します。座標軸を指定しない場合、waterfall は現在の座標軸にプロットします。

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: waterfall(peaks,LineStyle="--") は、破線を使用してウォータフォール プロットを作成します。

メモ

ここには一部のプロパティのみを示します。完全な一覧については、Patch のプロパティ を参照してください。

エッジの色。次の表のいずれかの値として指定します。エッジの既定色は黒で、[0 0 0] の値で指定されます。複数の多角形で共有されるエッジの場合、その表示色は最初に描画された多角形によって決まります。

説明結果

RGB 3 成分、16 進数カラー コード、色名

すべてのエッジに 1 つの色を使用します。詳細については、次の表を参照してください。

Rectangular patch with red edges

'flat'

エッジごとに異なる色を使用します。エッジの色を設定するには、その前の頂点の色を指定します。まず、頂点ごとに 1 つの色を含む配列として CData または FaceVertexCData を指定しなければなりません。エッジの色は、頂点を指定した順序によって決まります。

Rectangular patch with a medium green upper-right vertex, a medium green top edge, a yellow upper-left vertex, a yellow left edge, a dark blue lower-left vertex, a dark blue lower edge, a light blue lower-right vertex, and a light blue right edge

'interp'

内挿されたエッジの色。まず、頂点ごとに 1 つの色を含む配列として CData または FaceVertexCData を指定しなければなりません。エッジの色を指定するには、2 つの境界頂点の値を線形内挿します。

Rectangular patch with interpolated edge colors. The top two vertices are medium green and yellow, respectively. The bottom two vertices are dark blue and light blue, respectively. The color of each edge is a gradient of the colors at the bounding vertices.

'none'エッジは表示されません。

エッジは表示されません。

RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。この値は大文字と小文字を区別しません。したがって、カラー コード "#FF8800""#ff8800""#F80"、および "#f80" は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

次の表に、ライト テーマとダーク テーマでのプロットの既定のカラー パレットを示します。

パレットパレットの色

"gem" — ライト テーマの既定値

R2025a より前: ほとんどのプロットで、これらの色が既定で使用されます。

Sample of the "gem" color palette

"glow" — ダーク テーマの既定値

Sample of the "glow" color palette

orderedcolors 関数と rgb2hex 関数を使用すると、これらのパレットの RGB 3 成分および 16 進数カラー コードを取得できます。たとえば、"gem" パレットの RGB 3 成分を取得し、16 進数カラー コードに変換します。

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

R2023b より前: RGB = get(groot,"FactoryAxesColorOrder") を使用して、RGB 3 成分を取得します。

R2024a より前: H = compose("#%02X%02X%02X",round(RGB*255)) を使用して、16 進数カラー コードを取得します。

ライン スタイル。次の表にリストされたオプションのいずれかとして指定します。

ライン スタイル説明結果として得られる線
"-"実線

Sample of solid line

"--"破線

Sample of dashed line

":"点線

Sample of dotted line

"-."一点鎖線

Sample of dash-dotted line, with alternating dashes and dots

"none"ラインなしラインなし

ライン幅。ポイント単位の正の値として指定します。1 ポイントは 1/72 インチです。ラインがマーカーをもつ場合、ライン幅はマーカー エッジにも影響します。

ライン幅をピクセルの幅より細くすることはできません。システムでライン幅をピクセルの幅より細い値に設定すると、ラインは 1 ピクセル幅で表示されます。

ヒント

  • データを行ではなく列として解析するには、転置した引数を使用して waterfall を呼び出します。

    [X,Y] = meshgrid(-3:.125:3);
    Z = peaks(X,Y);
    waterfall(X',Y',Z')

  • patch オブジェクトではなく mesh surface オブジェクトを作成するには、関数 meshz を使用します。ウォータフォール プロットに似たプロットを作成するには、表面の MeshStyle プロパティを 'Row' に設定します。

アルゴリズム

  • 座標軸の XLimYLim、および ZLim の各プロパティは、x 軸、y 軸、および z 軸の範囲を格納します。これらの範囲は、入力引数 XY、および Z の範囲に基づきます。

  • 座標軸の CLim プロパティは、C の範囲への色の分布を決定します。詳細については、カラーマップの範囲の制御を参照してください。

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入

すべて展開する