欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python 利用matplotlib在3D空间中绘制平面的案例

程序员文章站 2022-03-31 08:09:14
图形:0、importimport numpy as npimport matplotlib as mplfrom matplotlib import cmfrom matplotlib import...

图形:

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 = 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()

图形:

python 利用matplotlib在3D空间中绘制平面的案例

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在3D空间中绘制平面的案例

软件信息:

python 利用matplotlib在3D空间中绘制平面的案例

补充: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()

python 利用matplotlib在3D空间中绘制平面的案例

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。