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

18 ビュー (過去 30 日間)
Takaki Fujii
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) ;

採用された回答

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 件)

カテゴリ

Help Center および File Exchange等高線図 についてさらに検索

Community Treasure Hunt

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

Start Hunting!