python 绘制3D平面图

[复制链接]
发表于 2025-5-23 19:16:04 | 显示全部楼层 |阅读模式
函数先容
  ax3d.plot_surface( x, # 网格坐标矩阵的x坐标 (2维数组)
                                 y, # 网格坐标矩阵的y坐标 (2维数组)
                                 z, # 网格坐标矩阵的z坐标 (2维数组)
                                 rstride=30, # 行跨距
                                 cstride=30, # 列跨距
                                 cmap='jet' # 配色方案 )
  配色方案如下:
  有很多配色方案不仅范围于下面的几种,可以根据需要设置不同方案
  

  代码如下:
  1. # 绘制3D平面图
  2. # 三维曲面图:切分成很多小段,每段绘制一个小平面
  3. import numpy as np
  4. import matplotlib.pyplot as mp
  5. from mpl_toolkits.mplot3d import Axes3D
  6. n = 1000
  7. # 生成网格化坐标矩阵
  8. # np.linspace()函数用于在区间内生成n个数据
  9. # meshgrid用于生成网格矩阵  
  10. '''
  11. 例如 矩阵
  12. 有如下坐标点
  13. (0,1) (1, 1) (2, 1) (1, 0) (1, 0) (1, 0)
  14. 那么生成的x矩阵为
  15. 0 1 2
  16. 1 1 1
  17. y矩阵为
  18. 1 1 1
  19. 0 0 0
  20. '''
  21. x, y = np.meshgrid(np.linspace(-3, 3, n), np.linspace(-3, 3, n))
  22. # 根据每个网格点坐标,通过某个公式计算z高度坐标
  23. z = (1 - x / 2 + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2)
  24. mp.figure('3D', facecolor='lightgray')  # 创建画布
  25. # matplotlib不同版本对应的projection的写法不同,可根据对应版本查询其不同的写法,当前matplotlib版本为3.5.2
  26. ax3d = mp.gca(projection='3d')  # 获取坐标系
  27. mp.title('3D Surface', fontsize=18) # 设置图形的名称和字体
  28. ax3d.set_xlabel('x', fontsize=14)  # 设置x轴名称和名称的字体大小
  29. ax3d.set_ylabel('y', fontsize=14)
  30. ax3d.set_zlabel('z', fontsize=14)
  31. # 绘制3D平面图
  32. # rstride: 行跨距
  33. # cstride: 列跨距
  34. ax3d.plot_surface(x, y, z, rstride=30, cstride=30, cmap='jet') # jet配色方案,正数越大越红,越小越蓝
  35. mp.show()
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

快速回复 返回顶部 返回列表