
塗りつぶした2次元等高線図(contourf)のカラーコンター
51 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Yoshifumi Katayama
am 5 Dez. 2019
Beantwortet: Kenta
am 23 Jan. 2020
様々なケースで同一のカラーコンターを使うために(同一の値に対して同一の色で表示される),以下のように指定したのですが,
contourf(X,Y,Z,[0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0],'ShowText','on');
ケース毎に存在する数値の範囲が異なるため,同一の値に対して同一の色で表示されません。
存在する数値の範囲が異なった場合でも,同一の値に対して同一の色で表示させるための方法はありませんか?
4 Kommentare
Kenta
am 9 Dez. 2019
教えていただき、誠にありがとうございます。教えていただいたコードを実行すると
以下のようになり、「白飛び」がなくなりました。axesに色をつけるとよかったのですね。
勉強になりました。ありがとうございました。

Etsuo Maeda
am 10 Dez. 2019
Itakuraさん。反映ありがとうございます。少しだけ訂正です。
cmap = colormap;
ax = gca;
ax.Color = cmap(1, :);
だと、Contour最下段の色と背景色が同じになって違和感があるかもしれません。
少しだけリファインしてみました。
ついでに上限の方もcaxis関数で弄れるようにしておきました。
Katayamaさん。こういうのでどうでしょうか。

Z = peaks;
myMin = -2;
myMax = 12;
levels = myMin:myMax;
subplot(2, 1, 1)
contourf(Z, levels);
colorbar
subplot(2, 1, 2)
contourf(Z, levels);
colorbar
caxis([myMin myMax])
cmap = colormap;
colormap(cmap(2:end, :))
ax = gca;
ax.Color = cmap(1, :);
HTH
Akzeptierte Antwort
Kenta
am 23 Jan. 2020
ご返信ありがとうございます。お役に立ててよかったです。コメントのほうもEtsuo Maedaさまよりアドバイスを頂き、いろいろと変更があったのでこちらに改訂版を掲載させていただきます。宜しくお願い致します。maeda様、アドバイスをくださり、ありがとうございました。

clear;clc;close all
cmap = colormap;
Z = peaks;
minimum=min(Z,[],'all');
maximum=max(Z,[],'all');
num_level=10;
interval=(maximum-minimum)/(num_level-1);
level=minimum+(0:num_level-2)*interval;
d=[-5 3 7];
for i=1:3
Z2=Z;
Z2(20:30,15:35)=Z2(20:30,15:35)-d(i);
subplot(1,3,i)
contourf(Z2,level)
colorbar
caxis([minimum maximum])
colormap(cmap(2:end, :))
ax = gca;
ax.Color = cmap(1, :);
end
0 Kommentare
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu 等高線図 finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!