[解決済み] MATLABでカラーバーのスケールを制御する
2022-02-12 01:43:01
質問
質問です。
MATLABのカスタムカラーバーで色の遷移を指定するには?
具体的には
黄色(下記参照)がカラーバーのより広い範囲をカバーするようにしたい(おそらく[19.5-21.5]またはそれに近いもの)。
使用方法 この回答 MATLABでカスタムカラーバーを作成することができました。私は、以下のことを理解しようとしています。 この回答 関連性があるかもしれないので。
からのアプローチを試みたことがあります。 この回答 とレビュー この回答 & これ で、目的を達成することができませんでした。
私が何かを見逃しているのは明らかです。
以下、全代表例
% MATLAB 2017a
% Data
X = [22.6 22.8 22.6 20.45 22.3 18.15 19.95 20.8].';
Y = [84 89 63 81 68 83 77 52].';
Z = [23.0 22.695 21.1450 21.5 22.09 20.5 22.075 20.915].';
% Create custom colormap
% Reference: https://stackoverflow.com/questions/24488378/how-to-map-a-specific-value-into-rgb-color-code-in-matlab/24488819#24488819
col3 = [0 1 0]; %G
col2 = [1 1 0]; %Y
col1 = [1 0 0]; %R
n1 = 20; n2 = 20;
cmap=[linspace(col1(1),col2(1),n1);linspace(col1(2),col2(2),n1);linspace(col1(3),col2(3),n1)];
cmap(:,end+1:end+n2)=[linspace(col2(1),col3(1),n2);linspace(col2(2),col3(2),n2);linspace(col2(3),col3(3),n2)];
cmap = cmap.';
% Plot
colormap(cmap), hold on, box on
p = scatter(X,Y,[],Z,'filled','DisplayName','Data3');
cb = colorbar;
cb.Limits = [18 23];
cb.Ticks = [18:1:23];
% Cosmetics
p.MarkerEdgeColor = 'k';
xlabel('X')
ylabel('Y')
cb.Label.String = 'Z';
解決するには?
への呼び出しが足りないだけだと思います。
caxis
で、色域をマッピングするための最小値と最大値を指定します。
caxis([18 23]);
次の行に注意してください...
cb.Limits = [18 23];
... を変更するだけです。
ダニ制限
表示
を追加しましたが、データが色範囲にマッピングされる方法については何も変更しません。そのため
caxis
関数は、それを制御する方法です(上記の場合、18という値を一方の端に、23という値をもう一方の端にマッピングします)。デフォルトでは、あなたのコードは、最小値と最大値を
Z
を色の範囲(それぞれ20.5と23)に設定します。カラーバーの目盛りをもっと大きな範囲に設定すると、カラーマップの最後の色(この場合は赤)で塗りつぶされてしまいます。だから、こんなにたくさん表示されるのです。
ボーナス
また、このような補間処理を行うには、次のような方法があります。
interp1
を使えば、このように簡単にカラーマップを生成することができます。
cmap = interp1([1 0 0; 1 1 0; 0 1 0], linspace(1, 3, 41));
関連
-
[解決済み] 第一差分フィルタ
-
[解決済み] MATLABエラー "このコンテキストでは関数定義は許可されていません。" [重複しています]。
-
[解決済み] KroneckerDelta - matlab
-
[解決済み] プロットを回転させる?
-
[解決済み] Matlabによる最急降下法の実装
-
[解決済み] Wolfram AlphaとMATLABでは伝達関数のプロットが異なる
-
[解決済み] Matlabで固有ベクトルを正しくプロットする
-
[解決済み] MATLABのパスに影をつける」とはどういう意味ですか?ファイル内で行うにはどうしたらいいですか?
-
[解決済み】すべてのサブプロットに1つのカラーバーを表示させる方法
-
[解決済み】MATLABでxkcd風グラフを作る
最新
-
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でベクトルからNaNを除去する
-
[解決済み] MATLABエラー "このコンテキストでは関数定義は許可されていません。" [重複しています]。
-
[解決済み] エラー: 等号の左側にある式は代入の対象として有効ではありません Matlab
-
[解決済み] Matlabのリスト理解
-
[解決済み] Matlabで描画しています。図形を保存するか、変数を保存するか?
-
[解決済み] Matlabでm-fileを実行するとき、コマンドビューでどのように改行を出力するのですか?
-
[解決済み] グラフと関係のないカスタム凡例を追加する
-
[解決済み] MATLABで分数を10進数に変換する【重複】。
-
[解決済み] 指定された矩形に含まれる配列中の点を見つける( matlab )