matlabにおけるcolorbarの使用法(カラースケールを表示するカラーバー)。
カラーバーを上手に使うと、画像が美しくなるだけでなく、グラフで伝えられる情報をとらえやすくなります。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)" と入力すると、次のような画像が表示されます。
関連
-
[解決済み] double 型の入力引数に対して未定義の関数 'int' が存在する [重複] 。
-
[解決済み] ある行列から固有ベクトルの異なる解を得ることができるでしょうか?
-
[解決済み] エラー --> 整数には同じクラスの整数か、スカラー倍数しか組み合わせることができません。
-
[解決済み] matlabでrandnを持つ確率変数の範囲はどうなっていますか?
-
[解決済み] 単純論理条件フラグ MATLAB
-
[解決済み] MATLAB のエラーです。関数 'subsindex' はクラス 'struct' の値に対して定義されていません。
-
[解決済み] エラー「Improper assignment with rectangular empty matrix」の解決方法を教えてください。
-
[解決済み] 減衰比一定の直線と根元の軌跡との交点を求めるためのrlocfindの代替プログラム(Matlab
-
[解決済み] Matlab の imrect を用いて,新しい矩形の座標を取得します.
-
[解決済み] MATLABのコードヘルプです。バックワードオイラー法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] matlabエディタで複数の行をコメントするためのショートカットキーはありますか?
-
[解決済み] MATLABで「連結される配列の次元が一致しない」というエラーをデバッグする。
-
[解決済み] 部分ピボッティングによるLU分解 Matlab
-
[解決済み] Matlabのリスト理解
-
[解決済み] matlabの*と.*の違いは何ですか?
-
[解決済み] Wolfram AlphaとMATLABでは伝達関数のプロットが異なる
-
[解決済み] matlabで三角行列を作る
-
[解決済み] matlabでchi2gof関数を理解する
-
[解決済み] Matlab: 小図形ウィンドウでYラベルが表示されない
-
[解決済み] ホールドオンでセミログプロット