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

조회 수: 7 (최근 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!