MATLAB Answers

0

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

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

  0 件のコメント

サインイン to comment.

1 件の回答

Kazuya
回答者: Kazuya
2019 年 1 月 2 日

できれば実行できるサンプルコードがあれば、いろいろ試しやすいんですが・・。
その「特定の値」を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

  0 件のコメント

サインイン to comment.