contourf関数​を用いた特定の値を特​定の色で塗りつぶす方​法について

11 ビュー (過去 30 日間)
Shotaro Suzuki
Shotaro Suzuki 2017 年 12 月 24 日
コメント済み: Shotaro Suzuki 2017 年 12 月 26 日
ある特定のZdataの時,指定した色で塗りつぶすことはできますでしょうか。
等高線のレベルは400程度で検討しています。
具体的には下記の図においてZdata=0の時,赤色に塗りつぶす方法です。
何かご存知の方がいましたらご教授願います。

採用された回答

Akira Agata
Akira Agata 2017 年 12 月 25 日
もし Zdata = 0 の等高線を重ね書きしたいということであれば、下記のようにして作成することができます。
あるいはご質問の内容は、Zdata <= 0 の領域を塗りつぶしたいということでしょうか??
Zdata = peaks(100);
figure
contourf(Zdata,400,'LineColor','none')
hold on
contour(Zdata,[0 0],'LineColor','r','LineWidth',2)
colorbar
  3 件のコメント
Akira Agata
Akira Agata 2017 年 12 月 26 日
Zdataの形状がシンプルであれば、Zdata = -1,1 それぞれについて contour 関数で等高線行列を作成して、その情報をもとに patch で塗りつぶす領域を作成するという方法があります。
もう少し簡単な別の方法としては、 surf 関数で赤色の3次元表面プロットを作成したあと、zlim([-1 1]) として [-1 1] 以外の部分をカットして視点などを調整することで、同様の結果を得ることができます。
Zdata = peaks(100);
figure
surf(Zdata,'EdgeColor','none','FaceColor','r')
zlim([-1 1])
xlim([1 100])
ylim([1 100])
view(2)
Shotaro Suzuki
Shotaro Suzuki 2017 年 12 月 26 日
surf関数を用いて作成することができました。
ご丁寧に教えていただきありがとうございました。

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!