コンターレベル数とレベル範囲を任意に指定する方法
41 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
コンター図においてレベルの範囲とその範囲におけるレベル数(分割数)を指定したいと思っています.
例えば,以下は表示レベル範囲を1e-1*[-1 1],その間におけるコンターレベル分割数を50にしようとしています.
x = linspace(-2*pi,2*pi);
y = linspace(0,4*pi);
[X,Y] = meshgrid(x,y);
Z = sin(X)+cos(Y);
contourf(X,Y,Z,1e-1*linspace(-1,1,50),'LineStyle','none')
colorbar
しかし,上記を実行するとマイナス側がホワイトアウトしてしまうようです.
ホワイトアウトを防ぎつつコンターレベルとレベル数を任意に指定する方法はありますか?
よろしくお願いいたします.
※追記
Zデータは後で変更されることを想定していて,つまり下限の値以下は常に青にしたいです
レベルを指定しない場合,下限を超えてもホワイトアウトしないのは興味深いです.
x = linspace(-2*pi,2*pi);
y = linspace(0,4*pi);
[X,Y] = meshgrid(x,y);
Z = sin(X)+cos(Y);
% [~,c]=contourf(X,Y,Z,10,'LineStyle','none'); % ホワイトアウトする
[~,c]=contourf(X,Y,Z,'LineStyle','none');
colorbar
pause()
c.ZData = Z*5;
0 Kommentare
Akzeptierte Antwort
Naoya
am 15 Feb. 2021
を確認しますと、"プロットに表示される最低レベルよりも小さい値が Z に含まれる場合、最低レベルと Z の最小値との間の領域は白になります。" と記述があります。
そのため、白を回避する一案としては、以下
>> contourf(X,Y,Z,[-2,1e-1*linspace(-1,1,50)] ,'LineStyle','none')
>> caxis([-0.1 0.1])
のように、もう一段小さい最小レベルを追加します。
caxis で、カラーマップの範囲を -0.1 ~ 0.1 に設定すれば、 元の最小レベル以下を "青" にすることができます。
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu 等高線図 finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!