メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

プロットの色の指定

MATLAB® では、既定の色のセットを使用してプロットが作成されます。既定の色により、作成するさまざまなプロットで一貫したクリーンな外観が得られます。これらの色は必要に応じてカスタマイズできます。プロット関数の多くには、色をカスタマイズするための ccolorspec などの入力引数があります。一般に、それらの関数から返されるオブジェクトには色を制御するプロパティがあります。引数やプロパティの名前は異なる場合もありますが、通常、それらが受け入れる値には共通のパターンがあります。パターンを理解してしまえば、それを使用してさまざまなプロットを変更できます。

以下の例では、関数 bar および scatter を使用して、色をカスタマイズする全体的なアプローチを示します。特定のプロット関数に対する有効な色の値の完全なリストについては、その関数のドキュメントを参照してください。

色の値のタイプ

色の値には次のタイプがあります。

  • 色名または省略名"red""green" などの色の名前を指定します。省略名は "r""g" などの色名の文字を指定します。

  • RGB 3 成分 — 各要素が色の赤、緑、青の成分の強度を示す 3 要素の行ベクトルを指定してカスタム色を作成します。強度値は [0,1] の範囲でなければなりません。たとえば、ピンクの色調は [1 0.5 0.8] として指定できます。

    RGB 3 成分は、色を制御する関数の引数では受け入れられない場合がありますが、色を制御するオブジェクトのプロパティでは通常は受け入れられます。

  • 16 進数カラー コード — ハッシュ記号 (#) で始まり、0 から F の範囲の3 桁または 6 桁の 16 進数が続く文字列または文字ベクトルを指定して、カスタム色を作成します。この値は大文字と小文字を区別しません。したがって、カラー コード "#FF8800""#ff8800""#F80"、および "#f80" は、いずれも同じオレンジの色調を指定します。

    16 進数カラー コードは、色を制御する関数の引数では受け入れられない場合がありますが、ユーザーは、オブジェクトのプロパティに対応する名前と値の引数を使用して 16 進数カラー コードを指定できます。たとえば、scatter(x,y,sz,"MarkerFaceColor","#FF8800") は散布図のマーカー色をオレンジに設定します。

次の表に、有効なすべての色名と省略名を対応する 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 進数カラー コードを取得します。

棒グラフの色の指定

関数 bar を呼び出し、オプションの引数 color"red" と指定して、赤の棒グラフを作成します。bar オブジェクトを b として返すため、後でチャートの他の特性をカスタマイズできます。

b = bar(1:10,"red");

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

次に、FaceColor プロパティと EdgeColor プロパティを 16 進数カラー コードの "#80B3FF" に設定して、バーの塗りつぶしの色と外枠の色を薄い青に変更します。

b.FaceColor = "#80B3FF";
b.EdgeColor = "#80B3FF";

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

散布図のマーカーの色の指定

乱数の散布図を作成します。マーカーのサイズを 75 ポイントと指定し、名前と値の引数を使用してマーカーの外枠と塗りつぶしの色を指定します。MarkerEdgeColor プロパティは外枠の色を制御し、MarkerFaceColor は塗りつぶしの色を制御します。

x = rand(1,100);
y = rand(1,100);
scatter(x,y,75,"MarkerEdgeColor","b", ...
    "MarkerFaceColor",[0 0.7 0.7])

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

一連のプロットでの色の指定

一連のプロットを作成するには次の 2 つの方法があります。

  • プロット関数を複数回呼び出し、関数 hold を使用して座標軸の内容を維持する。

  • 複数のデータ系列を含む行列をプロット関数に渡す。関数 plot はこれまで常に行列入力を受け入れており、他の多くのプロット関数も行列入力をサポートします。

いずれかのアプローチで色を指定するには、個々のプロット オブジェクトにアクセスできるように、出力引数を指定して目的のプロット関数を呼び出します。次に、変更するプロット オブジェクトのプロパティを設定します。

たとえば、100 個の点の塗りつぶしマーカーをもつ散布図を作成します。出力引数 s1 を指定して関数 scatter を呼び出します。関数 hold を呼び出して座標軸の内容を維持し、出力引数 s2 および s3 を指定して関数 scatter をあと 2 回呼び出します。変数 s1s2、および s3Scatter オブジェクトです。

figure
x = 1:5;
s1 = scatter(x,[6 3 9 10 7],100,"filled");
hold on
s2 = scatter(x,[16 13 19 20 17],100,"filled");
s3 = scatter(x,[26 23 29 33 27],100,"filled");
hold off

Figure contains an axes object. The axes object contains 3 objects of type scatter.

2 番目の Scatter オブジェクトの色を紫の色調に変更します。

s2.MarkerFaceColor = [0.7 0 1];

Figure contains an axes object. The axes object contains 3 objects of type scatter.

関数 scatter は行列入力もサポートするので "(R2021a 以降)"、行列を渡し、オブジェクトのベクトルを返すことにより、同じプロットを作成できます。

figure
x = 1:5;
y = [6 3 9 10 7; 16 13 19 20 17; 26 23 29 33 27];
s = scatter(x,y,100,"filled");

Figure contains an axes object. The axes object contains 3 objects of type scatter.

この例で 2 番目のデータ系列の色を変更するには、s にインデックスを付けて 2 番目の Scatter オブジェクトにアクセスします。

s(2).MarkerFaceColor = [0.7 0 1];

Figure contains an axes object. The axes object contains 3 objects of type scatter.

参考

関数

プロパティ

トピック