プロットの色の指定
MATLAB® では、既定の色のセットを使用してプロットが作成されます。既定の色により、作成するさまざまなプロットで一貫したクリーンな外観が得られます。これらの色は必要に応じてカスタマイズできます。プロット関数の多くには、色をカスタマイズするための c
や colorspec
などの入力引数があります。一般に、それらの関数から返されるオブジェクトには色を制御するプロパティがあります。引数やプロパティの名前は異なる場合もありますが、通常、それらが受け入れる値には共通のパターンがあります。パターンを理解してしまえば、それを使用してさまざまなプロットを変更できます。
以下の例では、関数 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" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。これらの色には関連付けられた名前はありません。
RGB 3 成分 | 16 進数カラー コード | 外観 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
棒グラフの色の指定
関数 bar
を呼び出し、オプションの引数 color
を "red"
と指定して、赤の棒グラフを作成します。bar オブジェクトを b
として返すため、後でチャートの他の特性をカスタマイズできます。
b = bar(1:10,"red");
次に、FaceColor
プロパティと EdgeColor
プロパティを 16 進数カラー コードの "#80B3FF"
に設定して、バーの塗りつぶしの色と外枠の色を薄い青に変更します。
R2019a より前の場合は、16 進数カラー コードではなく RGB 3 成分を指定します。たとえば、b.FaceColor = [0.5 0.7 1]
のようになります。
b.FaceColor = "#80B3FF"; b.EdgeColor = "#80B3FF";
散布図のマーカーの色の指定
乱数の散布図を作成します。マーカーのサイズを 75
ポイントと指定し、名前と値の引数を使用してマーカーの外枠と塗りつぶしの色を指定します。MarkerEdgeColor
プロパティは外枠の色を制御し、MarkerFaceColor
は塗りつぶしの色を制御します。
x = rand(1,100); y = rand(1,100); scatter(x,y,75,"MarkerEdgeColor","b", ... "MarkerFaceColor",[0 0.7 0.7])
一連のプロットでの色の指定
一連のプロットを作成するには次の 2 つの方法があります。
プロット関数を複数回呼び出し、関数
hold
を使用して座標軸の内容を維持する。複数のデータ系列を含む行列をプロット関数に渡す。関数
plot
はこれまで常に行列入力を受け入れており、他の多くのプロット関数も行列入力をサポートします。
いずれかのアプローチで色を指定するには、個々のプロット オブジェクトにアクセスできるように、出力引数を指定して目的のプロット関数を呼び出します。次に、変更するプロット オブジェクトのプロパティを設定します。
たとえば、100 個の点の塗りつぶしマーカーをもつ散布図を作成します。出力引数 s1
を指定して関数 scatter
を呼び出します。関数 hold
を呼び出して座標軸の内容を維持し、出力引数 s2
および s3
を指定して関数 scatter
をあと 2 回呼び出します。変数 s1
、s2
、および s3
は Scatter
オブジェクトです。
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
2 番目の Scatter
オブジェクトの色を紫の色調に変更します。
s2.MarkerFaceColor = [0.7 0 1];
関数 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");
この例で 2 番目のデータ系列の色を変更するには、s
にインデックスを付けて 2 番目の Scatter
オブジェクトにアクセスします。
s(2).MarkerFaceColor = [0.7 0 1];
参考
関数
scatter
|bar
|validatecolor