MATLAB Answers

contourfのZ​データの更新・再描画​の方法について教えて​下さい

3 views (last 30 days)
Shinij Kumagai
Shinij Kumagai on 26 Jul 2020
Commented: michio on 2 Aug 2020
contourfで、Zデータを、新規Zデータに置き換えたときの再描画がうまくいきません。
置き換えた新規Zデータより、明らかに小さい値でコンター図が描かれてしまいます。(下記コード)。対処方法を教えていただけると幸いです。
○コード
figure
ax11=subplot(2,1,1);
[c1,h1]=contourf(xq,yq,BDmatrixq,200);
set(h1,'edgecolor','none');
colormap jet(256)
colorbar
%%
set(h1,'XData',xq,'YData',yq,'ZData',BDmatrixq2);
drawnow
colormap jet(256)
colorbar
※補足
BDmatrixq2の最大値は940程度ですが、描画の最大値は、400程度になっています。
>> max1=max(BDmatrixq2(:))
max1 = 940

  0 Comments

Sign in to comment.

Answers (1)

michio
michio on 30 Jul 2020
'LevelListMode' プロパティが肝です。
R2020a で試しましたが、R2015a で同様かどうか確認頂けますでしょうか?
[c1,h1]=contourf(xq,yq,BDmatrixq,200);
と等高線の数を指定した場合、h1.LevelListMode は 'manual' になっているかと思います。等高線の数を指定しない場合は 'auto' です。
'manual’ になっている場合、
set(h1,'XData',xq,'YData',yq,'ZData',BDmatrixq2);
と ZData を更新した場合でも h1.LevelList (等高線を引く Z の値)は更新されません。この辺が影響しているのかなと想像しています。
試しに
h1.LevelListMode = 'auto';
set(h1,'XData',xq,'YData',yq,'ZData',BDmatrixq2);
'LevelListMode' を変更してから ZData の更新を行ってみてください。

  2 Comments

Shinij Kumagai
Shinij Kumagai on 31 Jul 2020
ご回答いただきありがとうございます。
無事に実行できました。
本当に、ありがとうございました。
michio
michio on 2 Aug 2020
よかったです!

Sign in to comment.

Tags

Products


Release

R2015a

Community Treasure Hunt

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

Start Hunting!