[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をそれぞれ半分にしている。
最後のプロットで、底を表示。

参考

コメント