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

2 ビュー (過去 30 日間)
Shinij Kumagai
Shinij Kumagai 2020 年 7 月 26 日
コメント済み: michio 2020 年 8 月 2 日
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

回答 (1 件)

michio
michio 2020 年 7 月 30 日
'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 件のコメント
Shinij Kumagai
Shinij Kumagai 2020 年 7 月 31 日
ご回答いただきありがとうございます。
無事に実行できました。
本当に、ありがとうございました。
michio
michio 2020 年 8 月 2 日
よかったです!

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

カテゴリ

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

タグ

製品


リリース

R2015a

Community Treasure Hunt

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

Start Hunting!