3d boxプロットをするにはどうしたらよいでしょうか?
例えば以下のようなデータがあるとして、
[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
figure;
s = surf(X,Y,Z,'FaceAlpha',0.5)
下記のような図を表示させることは可能でしょうか。

2 Comments

Kenta
Kenta on 15 Apr 2020
こんにちは、確認させてほしいのですが、ほしい最終結果のxy座標の値は何に相当しているのでしょうか。
例えば、z=f(x,y)を考えて、箱ひげ図はz方向の値で作成し、それぞれのx, yのペアで取る値を座標(x,y)にて表示するということでしょうか?
すみません、質問が間違っておりました。
2次元配列をboxplotで表示することは可能ですが、3次元配列を3d でboxplotすることは可能でしょうか?
2次元配列の場合
f2=rand(10,10)
figure,boxplot(f2)
3次元配列の場合
f3=rand(10,10,10)
figure,boxplot(f3)%これは実行できない
z=f(x,y,t)と考えて、tを集約した時にboxplotでxとyに対するzの広がりを表示させたいと思っております。あわよくば、surfのようにboxの境界を面で表現できればと思っています。

Sign in to comment.

 Accepted Answer

Kenta
Kenta on 16 Apr 2020

1 vote

コメントのほう、返信ありがとうございました。ご質問を詳しく理解することができました。
3Dの箱ひげ図は以下にソースコードがありました。
ご質問の内容ですと、(それが満足のいく見せ方かどうかはおいておいて)上のソースコードで正しく表示はできると思います。
ただ、スムーズにつないで可視化したいのであれば、上のものに加えて、pachという関数でつなげるかもしれません。
例えば以下のようにスムーズにつなげることができます。surf関数でもよさそうですが、patchのほうがきれいに見えるかもしれません。

2 Comments

Ryuto Shigenobu
Ryuto Shigenobu on 18 Apr 2020
概ね解決致しました。
アドバイスありがとうございます。
Kenta
Kenta on 19 Apr 2020
はい、そう聞けてよかったです。またよりよい3Dのbox plotができたら教えてもらえると幸いです。よろしくお願いいたします。

Sign in to comment.

More Answers (0)

Products

Asked:

on 15 Apr 2020

Commented:

on 19 Apr 2020

Community Treasure Hunt

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

Start Hunting!