pythonはmatplotlibを利用して3 D空間に平面を描くケースです。
4038 ワード
図:
0、import
2、斜め平面
ソフトウェア情報:
補足:Pythonデータ分析(Matplotlib)の3 D図形
pythonを使って簡単な三次元図を描きます。
余計なことを言わないで、コードを見てください。
以上は個人の経験ですので、参考にしていただければと思います。間違いがあったり、完全に考えていないところがあれば、教えてください。
0、import
import numpy as np
import matplotlib as mpl
from matplotlib import cm
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
1、水平と垂直平面
#
fig = plt.figure(figsize=(12, 8),
facecolor='lightyellow'
)
# 3D
ax = fig.gca(fc='whitesmoke',
projection='3d'
)#
x = np.linspace(0, 9, 9)
y = np.linspace(0, 9, 9)
X, Y = np.meshgrid(x, y)
# -------------------------------- 3D --------------------------------
# z=4.5
ax.plot_surface(X,
Y,
Z=X*0+4.5,
color='g',
alpha=0.6
)
# y=4.5
ax.plot_surface(X,
Y=X*0+4.5,
Z=Y,
color='y',
alpha=0.6
)
# x=4.5
ax.plot_surface(X=X*0+4.5,
Y=Y,
Z=X,
color='r',
alpha=0.6
)
# -------------------------------- --------------------------------
#
ax.set(xlabel='X',
ylabel='Y',
zlabel='Z',
xlim=(0, 9),
ylim=(0, 9),
zlim=(0, 9),
xticks=np.arange(0, 10, 2),
yticks=np.arange(0, 10, 1),
zticks=np.arange(0, 10, 1)
)
#
ax.view_init(elev=15, #
azim=60 #
)
#
plt.show()
図:2、斜め平面
#
fig = plt.figure(figsize=(12, 8),
facecolor='lightyellow'
)
# 3D
ax = fig.gca(fc='whitesmoke',
projection='3d'
)
#
x = np.linspace(0, 9, 9)
y = np.linspace(0, 9, 9)
X, Y = np.meshgrid(x, y)
# -------------------------------- 3D --------------------------------
# z=3
ax.plot_surface(X,
Y,
Z=X*0+3,
color='g'
)
# z=2y
ax.plot_surface(X,
Y=Y,
Z=Y*2,
color='y',
alpha=0.6
)
# z=-2y + 10
ax.plot_surface(X=X,
Y=Y,
Z=-Y*2+10,
color='r',
alpha=0.7
)
# -------------------------------- --------------------------------
#
ax.set(xlabel='X',
ylabel='Y',
zlabel='Z',
xlim=(0, 9),
ylim=(0, 9),
zlim=(0, 9),
xticks=np.arange(0, 10, 2),
yticks=np.arange(0, 10, 1),
zticks=np.arange(0, 10, 1)
)
#
ax.view_init(elev=15, #
azim=10 #
)
#
plt.show()
図:ソフトウェア情報:
補足:Pythonデータ分析(Matplotlib)の3 D図形
pythonを使って簡単な三次元図を描きます。
余計なことを言わないで、コードを見てください。
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pylab as plt
import numpy as np
from matplotlib import cm
# 3d
fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
"""numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
。
meshgrid , , x y
"""
u = np.linspace(-1,1,100)
x,y =np.meshgrid(u,u)
z = x**2 +y**2
# ,
ax.plot_surface(x,y,z,rstride=4,cstride=4,cmap=cm.YlGnBu_r)
plt.show()
以上は個人の経験ですので、参考にしていただければと思います。間違いがあったり、完全に考えていないところがあれば、教えてください。