カラーバー、カラーマ​ップで特定の値を透明​にする方法

37 views (last 30 days)
Takaki Fujii
Takaki Fujii on 30 Dec 2018
Answered: Kazuya on 2 Jan 2019
contourfやpcolorを使って、塗りつぶした等値線の描画を行う際に、特定の値だけ塗りつぶさないという事は出来るでしょうか?(あるいは特定の値だけ透明にするなど)
下記のようなコードで全体を透過度を上げる事は出来ましたが、特定の値だけ、透過度を上げる操作が分かりません。
扱っているデータには0が含まれており、0だけ塗りつぶさないようにしたいです。
ちなみに、カラーバーに白色を追加して、特定の値(0)だけ塗りつぶす色を白くする、ということはやってみましたが、極座標を使っている都合上、座標軸も白く塗りつぶされてしまうため使えませんでした。
よろしくお願いします。
h=pcolor(X,Y,Data)
shading interp
set(h,'facealpha',0.1) ;

Accepted Answer

Kazuya
Kazuya on 2 Jan 2019
できれば実行できるサンプルコードがあれば、いろいろ試しやすいんですが・・。
その「特定の値」をNaNに置き換えて描画する方法はどうでしょう? contourf 関数のヘルプページに
"Z に値 NaN があると、等高線図中に境界線が黒の空白領域が残ります。"
と記載がありますが、pcolor 関数でも同じみたいです。
n = 6;
r = (0:n)'/n;
theta = pi*(-n:n)/n;
X = r*cos(theta);
Y = r*sin(theta);
C = r*cos(2*theta);
C(C>0.5) = nan; % 0.5 以上の値を nan にしてみます。
hp = pcolor(X,Y,C);
axis equal tight

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!