[matplotlib 3D] 41. 円錐台(Truncated cone)

matplotlib 3D

はじめに

matplotlib mplot3dで円錐台を作成する。

コード

解説

モジュールのインポート

3Dグラフの設定

データの生成

円錐は媒介変数でデータを生成する。x,yは、

$$x=rcos\theta\\y=rsin\theta$$

で、円錐は直交座標で

$$z^2=x^2+y^2$$

とあらわせるので、z=rとなる。ふつうにZ = Rとすると下に凸になるので、マイナスをかけて反転させて、+5することで底を0に持ってきている。

円錐台にする設定

[matplotlib 3D] 35. 円柱(円筒座標)
matplotlib mplot3dで円柱を表示する方法を解説する。ここでは円筒座標系でデータを生成する。

円柱のとき(↑)では、フタと底にCircleを使ったが、今回はmplot3d surfaceグラフでフタと底を描写する。

フタと底の作成には、np.full()を使う。
フタは2.5の位置にくるので、すべて、2.5で構成された(100,100)の配列をつくる。
底は0の位置なので、同様に、0の(100,100)の配列をつくる。

Z[Z >= 2.5] = np.nanとすることで、Zの2.5以上のデータがすべてnanになり、グラフに表示されなくなる。

軸範囲、軸ラベルの設定

3Dグラフの表示

最初のプロットで円錐のz=2.5までが表示される。
次のプロットでフタが表示される。z=2.5の位置は半径を1〜0で変化させる必要があるので、X,Yをそれぞれ半分にしている。
最後のプロットで、底を表示する。

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

参考

コメント

  1. […] [matplotlib 3D] 41. 円錐台(Truncated cone)matplotlib mplot3dによる円錐台sabopy.com2018.12.07 […]