函数先容
ax3d.plot_surface( x, # 网格坐标矩阵的x坐标 (2维数组)
y, # 网格坐标矩阵的y坐标 (2维数组)
z, # 网格坐标矩阵的z坐标 (2维数组)
rstride=30, # 行跨距
cstride=30, # 列跨距
cmap='jet' # 配色方案 )
配色方案如下:
有很多配色方案不仅范围于下面的几种,可以根据需要设置不同方案
代码如下:
- # 绘制3D平面图
- # 三维曲面图:切分成很多小段,每段绘制一个小平面
- import numpy as np
- import matplotlib.pyplot as mp
- from mpl_toolkits.mplot3d import Axes3D
- n = 1000
- # 生成网格化坐标矩阵
- # np.linspace()函数用于在区间内生成n个数据
- # meshgrid用于生成网格矩阵
- '''
- 例如 矩阵
- 有如下坐标点
- (0,1) (1, 1) (2, 1) (1, 0) (1, 0) (1, 0)
- 那么生成的x矩阵为
- 0 1 2
- 1 1 1
- y矩阵为
- 1 1 1
- 0 0 0
- '''
- x, y = np.meshgrid(np.linspace(-3, 3, n), np.linspace(-3, 3, n))
- # 根据每个网格点坐标,通过某个公式计算z高度坐标
- z = (1 - x / 2 + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2)
- mp.figure('3D', facecolor='lightgray') # 创建画布
- # matplotlib不同版本对应的projection的写法不同,可根据对应版本查询其不同的写法,当前matplotlib版本为3.5.2
- ax3d = mp.gca(projection='3d') # 获取坐标系
- mp.title('3D Surface', fontsize=18) # 设置图形的名称和字体
- ax3d.set_xlabel('x', fontsize=14) # 设置x轴名称和名称的字体大小
- ax3d.set_ylabel('y', fontsize=14)
- ax3d.set_zlabel('z', fontsize=14)
- # 绘制3D平面图
- # rstride: 行跨距
- # cstride: 列跨距
- ax3d.plot_surface(x, y, z, rstride=30, cstride=30, cmap='jet') # jet配色方案,正数越大越红,越小越蓝
- mp.show()
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|