はじめに
matplotlib mplot3dによる回転放物面の作成について説明する。
コード
解説
モジュールのインポート
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
3Dグラフにする設定
fig=plt.figure(figsize=(6,6) ax = fig.gca(projection='3d')
データ生成
theta = np.linspace(0, 2*np.pi, 100)
r = np.linspace(0, 2, 100)
t,R =np.meshgrid(theta, r)
X = R*np.cos(t)
Y = R*np.sin(t)
Z = R**2
角度(theta),半径(r)でmeshgridを作成。
X, Yは極座標なので、
とする。
回転放物面は
$$z=x^2+y^2$$とあらわせるので、以下のようになる。
$$z=(rcos\theta)^2+(rsin\theta)^2 = r^2(cos^2\theta+sin^2\theta)=r^2$$プロットの作成
ax.plot_surface(X, Y, Z,alpha=0.8, cmap=cm.winter)
cmap=cm.winterで冬っぽいカラーマップで表示。[1]
alpha=0.8で透明度0.8(1で不透明)のsurfaceグラフを作成。
軸ラベル、軸範囲の設定
ax.set_xlabel('x axis') ax.set_ylabel('y axis') ax.set_zlabel('z axis') ax.set_xlim(-2.5,2.5) ax.set_ylim(-2.5,2.5) ax.set_zlim(0,5) #ax.set_aspect('equal')コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)
コメント
[…] [matplotlib 3D] 36. 回転放物面体matplotlib mplot3dによる回転放物面sabopy.com2018.11.28 (adsbygoogle = window.adsbygoogle || []).push({}); […]