カラーマップの配色を自分で指定するには?
216 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
以下の画像は、gnuplotで作成したカラーバーです。これと同配色のカラーマップをmatlabでも表示したいのですが、事前定義されたカラーマップ以外のものを自分で作成することは可能でしょうか。またそのためにはどのような方法があるでしょうか?
初歩的な質問でしたら大変恐縮ですが何卒よろしくお願いいたします。
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1365609/image.png)
0 Kommentare
Akzeptierte Antwort
Kojiro Saito
am 25 Apr. 2023
Bearbeitet: Kojiro Saito
am 25 Apr. 2023
下記のコードで質問欄に添付してもらったカラーマップを作ってみます。interp1などで色を256色に補間すると滑らかなカラーマップになります。
% 16進数表記でgnuplotのカラーマップの色情報を定義
hexMap = ["#000090" "#000fff" "#0090ff" "#0fffee" "#ffffff" "#ffee00" "#ff7000" "#ee0000" "#7f0000"];
% 16進数表記から[R G B]の配列に変換
rgbMap = validatecolor(hexMap, "multiple");
% 補間して9色から256色にしたカラーマップを作成
cmap = interp1(1:9,rgbMap,linspace(1,9,256),'linear');
% 確認用の3次元プロット
[x, y] = meshgrid(1:0.5:10, 1:0.5:10);
z = (sin(x) + cos(y)) / 2;
surf(x, y, z, EdgeColor="#AAAAAA")
% カスタムのカラーマップで表示
colormap(cmap);
% カラーバーを追加
cb = colorbar;
% 最大値1、最小値-1のスケールにする
clim([-1 1])
% 目盛りを0.5刻みにする
cb.Ticks = -1:0.5:1;
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!