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

ある特定のZdataの時,指定した色で塗りつぶすことはできますでしょうか。
等高線のレベルは400程度で検討しています。
具体的には下記の図においてZdata=0の時,赤色に塗りつぶす方法です。
何かご存知の方がいましたらご教授願います。

 Respuesta aceptada

Akira Agata
Akira Agata el 25 de Dic. de 2017

2 votos

もし 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 comentarios

Shotaro Suzuki
Shotaro Suzuki el 25 de Dic. de 2017
回答いただきありがとうございます。
言葉足らずで申し訳ありません。ご指摘の通り後者の塗りつぶしの方法になります。
なので,塗りつぶしたい範囲は-1<Zdata<1であり,この範囲内を特定の色で塗りつぶすことは可能でしょうか。
Akira Agata
Akira Agata el 26 de Dic. de 2017
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 el 26 de Dic. de 2017
surf関数を用いて作成することができました。
ご丁寧に教えていただきありがとうございました。

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Preguntada:

el 24 de Dic. de 2017

Comentada:

el 26 de Dic. de 2017

Community Treasure Hunt

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

Start Hunting!