2012-01-15 18 views
3

私はMatlabに2つのサーフェスをグラウンドしています。グラウンドレベルは一定で、水位は時間とともに変化しています。実際のプロットとは無関係に静的な凡例を作成

Iの結果がときにある

if max(C(:)) < 2 
    colormap([0.5 0.25 0 ; 0 0.8 1]); 
elseif max(C(:)) >= 2 && max(C(:)) < 3 
    colormap([0.5 0.25 0 ; 0 0.8 1 ; 0 0.5 0.65]); 
elseif max(C(:)) >= 3 
    colormap([0.5 0.25 0 ; 0 0.8 1 ; 0 0.5 0.65 ; 0 0.2 0.3]); 
end 

(しきい値以下のコードで配列Cによって表される)は、2つの閾値によって決まる増加深さと水のcolormapを変更するifステートメントを使用水位が閾値1よりも低い場合は明るい青色であり、2つの閾値の間が暗くなり、閾値2よりも暗くなると、暗くなる。

私の問題は、私は伝説

legend('ground','water'); 

を描くとき...私は水だけを表す1つの色を取得し、それが最大の深さに応じて変化するということです。どのように私は色の例とすべての4つのカテゴリを示す静的な伝説を作るのですか。

  1. (茶色)グランド
  2. (水色)しきい値1しきい値
  3. を間
  4. (標準青)水位の下の水位閾値以上の
  5. (ダークブルー)水レベル2

私は、右の青い色で(それが気づいたことはありません)軸でどこかに3つの小ぎれいなパッチを作っていると考えるとことができる唯一のソリューション作る水面ではなく伝説のポイント。しかし、それは)あなたが(カラーバーを表示することができ、実際の安っぽいソリューション...

答えて

0

次のようになります。

C = [1 2 3 4]; 

if max(C(:)) < 2 
    colormap([0.5 0.25 0 ; 0 0.8 1]); 
elseif max(C(:)) >= 2 && max(C(:)) < 3 
    colormap([0.5 0.25 0 ; 0 0.8 1 ; 0 0.5 0.65]); 
elseif max(C(:)) >= 3 
    colormap([0.5 0.25 0 ; 0 0.8 1 ; 0 0.5 0.65 ; 0 0.2 0.3]); 
end 

% whatever to make your plot 
imagesc(C); 

% display a colorbar 
cb_ax = colorbar; 

% label it appropriately 
set(cb_ax, 'YTick', [1:4]*3/4+5/8, 'YTickLabels', {'A', 'B', 'C', 'D'}); 
+0

は、あなたの答えをいただき、ありがとうございます。グラフ上に表示されているすべての色を見ることができますが、私のシミュレーションには深い水が含まれていない深い水の色はまだ見えません。とにかく、私はこれまでに幸せだ:) –

関連する問題