1. ホーム
  2. マットラボ

matlabにおけるcolorbarの使用法(カラースケールを表示するカラーバー)。

2022-02-25 03:42:32

オリジナルテキスト

カラーバーを上手に使うと、画像が美しくなるだけでなく、グラフで伝えられる情報をとらえやすくなります。matlab を使ったことがある人なら誰でも知っていますが、デフォルトのカラーマップは jet で、これはプロットを描いた後に "colorbar" で入力した色です。さらに、matlab には hsv, autumn, bone, colorcube などの多くのカラーマップが付属しています。コマンドウィンドウに直接 "colormap(hsv)" と入力すれば、見取り図の色を対応するカラーマップとして表示させることができるのです。

以下は、非常に簡単な方法で、好きなカラーマップをカスタマイズする方法です。

中国海の海面水温マップを例にして。

これは m_pcolor が描画されたプロットで、その後のカラーマップはデフォルトの matlab jet (すなわち、コマンド 'colorbar' を直接タイプして表示されるカラーマップ) になっています。

ここでコマンドウィンドウに「colormap(hsv)」と入力すると、以下のようなグラフになります。

<スパン (図のキャプションは無視してください。スクリーンショットは面倒なんです。すみません)

もし、以下のように、赤、オレンジ、白、青、紫の順に色が渡される新しいカラーマップを定義するとしたら、どのようにしたらよいでしょうか。

matlabのcolormap Editorを紹介します。

figrueウィンドウのEdit-colormapをクリックすると、次のようになります。

カラーマップ・エディター・ウィンドウが表示されます。

このウィンドウを使って、カスタムカラーマップを直接設定することができるんだ。

カラーマップエディターにはカラースケールがあり、カラースケールの下にはスライダーがあります。両端の長方形のスライダーは固定で削除できませんが、真ん中の長方形+三角形のスライダーは追加、削除、スライドが可能です。追加するにはカラースケールの下端でマウスの左ボタンをクリックし、削除するにはスライダーを選択してDeleteiを押し、左右にスライドするにはスライダーの上でマウスをホールドしてください。

上記の「赤、オレンジ、白、青、紫と色を渡す"」という効果を得るために、まず以下のように、真ん中の長方形+三角形のスライダーを2つ削除します。

前の画像のカラーマップの両端は赤なので、真ん中の2つのスライダーを削除すると、カラーマップ全体が赤のままとなります。

まずは白を足してみましょう。ルーラーには64個のセルがあるので、左右のバランスをとるために、次のように真ん中の2つのセルを選んで、まず白を追加します。

1. ルーラの真ん中のグリッドの下をクリックして、スライダを表示します(下図)。

2. 表示されたスライダーをダブルクリックして色選択ウィンドウを表示させ、白(下図)を選択します。

選択後、画像は以下のように表示されます。

同じように"red, orange, blue, purple"を選ぶと、以下のようになります。

しかしここで、黄色と緑が真ん中に表示されるため、colormapが思うように機能しないことがわかります。colormap EditorにはInterpolating colorspaceというオプションがあり、colormap(hsv)をベースにしているので、ここでの色補間はhsv用であり、RGBを選択すべき方法であることに注意しましょう。

OK、よくやった。

さて、設定したカラーマップを保存して、今後描画するときに使えるようにしましょう。

コマンドパスのコントロールエンターで

mycolor=colormap;%mycolor 名前の任意指定

mycolor マイカラーを保存します。

次に描画するときは、mycolor; をロードして colormap(mycolor) と入力すれば、カラーバーを直接使用することができます。

グラデーションではないカラーバーもあります。 を以下のように設定します。

このカラーバーもほぼ同じように設定されています。写真のカラーバーは5色なので、最初の5色をカラーマップエディターで写真の色に設定し、残りを白に設定します(必ずしも白である必要はなく、他の色でも構いません、主に識別しやすくするため)。

ここでコマンドウィンドウに "colormap" と入力すると、64*3 の配列が表示されます。

注目の配列の最初の5行は上記の5色を表し、残りの[1 1 1]は白を表します。これは、最初の5行をコピーして、新しい配列に書き込むだけです。

次に"save mycolor5 mycolor1"で保存します。これはコマンドウィンドウで "colormap(mycolor5)" と入力すると、次のような画像が表示されます。