python利⽤matplotlib在3D空间中绘制平⾯的案例图形:
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 = a(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 = a(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',matplotlib中subplot
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)之3D图形
使⽤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()
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。如有错误或未考虑完全的地⽅,望不吝赐教。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论