Python三维绘图

在遇到三维数据时,三维图像能给我们对数据带来更加深入地理解。python的matplotlib库就包含了丰富的三维绘图工具。

1.创建三维坐标轴对象Axes3D

创建Axes3D主要有两种方式,一种是利用关键字projection='3d'l来实现,另一种则是通过从mpl_toolkits.mplot3d导入对象Axes3D来实现,目的都是生成具有三维格式的对象Axes3D.

#方法一,利用关键字
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D#定义坐标轴
fig = plt.figure()
ax1 = plt.axes(projection='3d')
#ax = fig.add_subplot(111,projection='3d')  #这种方法也可以画多个子图#方法二,利用三维轴方法
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D#定义图像和三维格式坐标轴
fig=plt.figure()
ax2 = Axes3D(fig)
2.三维曲线和散点

随后在定义的坐标轴上画图:

import numpy as np
z = np.linspace(0,13,1000)
x = 5*np.sin(z)
y = 5*np.cos(z)
zd = 13*np.random.random(100)
xd = 5*np.sin(zd)
yd = 5*np.cos(zd)
ax1.scatter3D(xd,yd,zd, cmap='Blues')  #绘制散点图
ax1.plot3D(x,y,z,'gray')    #绘制空间曲线
plt.show()

3.三维曲面

下一步画三维曲面

fig = plt.figure()  #定义新的三维坐标轴
ax3 = plt.axes(projection='3d')#定义三维数据
xx = np.arange(-5,5,0.5)
yy = np.arange(-5,5,0.5)
X, Y = np.meshgrid(xx, yy)
Z = np.sin(X)+np.cos(Y)#作图
ax3.plot_surface(X,Y,Z,cmap='rainbow')
#ax3.contour(X,Y,Z, zdim='z',offset=-2,cmap='rainbow)   #等高线图,要设置offset,为Z的最小值
plt.show()


如果加入渲染时的步长,会得到更加清晰细腻的图像:
ax3.plot_surface(X,Y,Z,rstride = 1, cstride = 1,cmap='rainbow'),其中的row和cloum_stride为横竖方向的绘图采样步长,越小绘图越精细。

4.等高线

同时还可以将等高线投影到不同的面上:

from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D#定义坐标轴
fig4 = plt.figure()
ax4 = plt.axes(projection='3d')#生成三维数据
xx = np.arange(-5,5,0.1)
yy = np.arange(-5,5,0.1)
X, Y = np.meshgrid(xx, yy)
Z = np.sin(np.sqrt(X**2+Y**2))#作图
ax4.plot_surface(X,Y,Z,alpha=0.3,cmap='winter')     #生成表面, alpha 用于控制透明度
ax4.contour(X,Y,Z,zdir='z', offset=-3,cmap="rainbow")  #生成z方向投影,投到x-y平面
ax4.contour(X,Y,Z,zdir='x', offset=-6,cmap="rainbow")  #生成x方向投影,投到y-z平面
ax4.contour(X,Y,Z,zdir='y', offset=6,cmap="rainbow")   #生成y方向投影,投到x-z平面
#ax4.contourf(X,Y,Z,zdir='y', offset=6,cmap="rainbow")   #生成y方向投影填充,投到x-z平面,contourf()函数#设定显示范围
ax4.set_xlabel('X')
ax4.set_xlim(-6, 4)  #拉开坐标轴范围显示投影
ax4.set_ylabel('Y')
ax4.set_ylim(-4, 6)
ax4.set_zlabel('Z')
ax4.set_zlim(-3, 3)plt.show()

5.随机散点图

可以利用scatter()生成各种不同大小,颜色的散点图,其参数如下:

#函数定义
matplotlib.pyplot.scatter(x, y, s=None,   #散点的大小 array  scalarc=None,   #颜色序列   array、sequencymarker=None,   #点的样式cmap=None,    #colormap 颜色样式norm=None,    #归一化  归一化的颜色campvmin=None, vmax=None,    #对应上面的归一化范围alpha=None,     #透明度linewidths=None,   #线宽verts=None,   #edgecolors=None,  #边缘颜色data=None, **kwargs)
#ref:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.html
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D#定义坐标轴
fig4 = plt.figure()
ax4 = plt.axes(projection='3d')#生成三维数据
xx = np.random.random(20)*10-5   #取100个随机数,范围在5~5之间
yy = np.random.random(20)*10-5
X, Y = np.meshgrid(xx, yy)
Z = np.sin(np.sqrt(X**2+Y**2))#作图
ax4.scatter(X,Y,Z,alpha=0.3,c=np.random.random(400),s=np.random.randint(10,20, size=(20, 40)))     #生成散点.利用c控制颜色序列,s控制大小#设定显示范围plt.show()

Finish
Todo bar


Python三维绘图--Matplotlib相关推荐

  1. python画三维平面-Python三维绘图--Matplotlib

    编辑推荐: 本文主要介绍如何用python的matplotlib库中丰富的三维绘图工具进行绘图,运用三维图给我们对数据带来更加深入地理解,希望对大家有帮助. 本文来自于csdn ,由火龙果软件Alic ...

  2. Python三维绘图--Matplotlib colorbar生成

    Matplotlib 使用colorbar来设置色阶条: colorbar(**kwargs) colorbar(mappable, **kwargs) colorbar(mappable, cax= ...

  3. python画图三维-Python三维绘图之Matplotlib库的使用方法

    前言 在遇到三维数据时,三维图像能给我们对数据带来更加深入地理解.python的matplotlib库就包含了丰富的三维绘图工具. 1.创建三维坐标轴对象Axes3D 创建Axes3D主要有两种方式, ...

  4. python 三维绘图_Python三维绘图--Matplotlib

    编辑推荐: 本文主要介绍如何用python的matplotlib库中丰富的三维绘图工具进行绘图,运用三维图给我们对数据带来更加深入地理解,希望对大家有帮助. 本文来自于csdn ,由火龙果软件Alic ...

  5. python三维绘图 画长方体_Python Matplotlib绘制长方体

    A. 使用Poly3DCollection 一个选择是创建一个长方体的面Poly3DCollection.由于相同收藏的艺术家不存在重叠的问题,这可能是最好的目的在这里.在from mpl_toolk ...

  6. python三维绘图有什么用_python三维绘图

    简介编辑Python科学计算Python科学计算VPython是一套简单易用的三维图形库,使用它可以快速创建三维场景和动画.和TVTK相比,它更适合于创建交互式的三维场景,而TVTK则更适合于对数据进 ...

  7. Python三维绘图:马鞍面

    马鞍面,是一种曲面,又叫双曲抛物面,形状类似于马鞍.在XZ面上构造一条开口向上的抛物线,然后在YZ面上构造一条开口向下的抛物线(两条抛物线的顶端是重合在一点上的):然后让第一条抛物线在另一条抛物线上滑 ...

  8. python三维图如何标注曲面_Matplotlib:Python三维绘图

    1.创建三维坐标轴对象Axes3D 创建Axes3D主要有两种方式,一种是利用关键字projection='3d'来实现,另一种是通过从mpl_toolkits.mplot3d导入对象Axes3D来实 ...

  9. Python 三维绘图

    圆锥面 z=x2+y2z = \sqrt{x^2+y^2}z=x2+y2​ import matplotlib.pyplot as plt import numpy as npx = np.linsp ...

  10. python的mapl画图y轴排_Python三维绘图之Matplotlib库的使用方法

    前言 在遇到三维数据时,三维图像能给我们对数据带来更加深入地理解.python的matplotlib库就包含了丰富的三维绘图工具. 1.创建三维坐标轴对象Axes3D 创建Axes3D主要有两种方式, ...

最新文章

  1. Analytic Marching:一种基于解析的三维物体网格生成方法
  2. linux查找文件命令find
  3. MATLAB时间序列的排序函数
  4. 注解方式使用 Redis 缓存
  5. 项目管理(1):备战pmp
  6. 「野性消费」也不怕!打造供应链数据平台,业务逻辑模板都在这了
  7. python数据结构list的extend与append的差别
  8. matlab拉普拉斯算子边缘提取_使用平面光学器件进行图像边缘的差分检测
  9. coredump详解
  10. 生成服从正态分布的随机数
  11. windows xp sp3 原版收藏。
  12. rpc error: code = Unavailable desc = connection error: desc = “transport: Error while dialing readin
  13. 高登学苑-解密携程4.9分的秘诀学习笔记
  14. 二叉树的结构特点及性质
  15. 埃森哲《2022 中国企业数字化转型指数》: 中国企业数字化进程五年间稳步推进,17% 企业成领军者
  16. MFC-CString
  17. AoCoder 1983 [AGC001E] BBQ Hard(组合数+dp)
  18. 【转载】成本中心费用分配与分摊的区别
  19. matlab-基本的编程语言功能
  20. c语言万年历农历转公历,公历日期与农历日期的相互转换程序

热门文章

  1. IDEA 里 VersionController 中的 log 中的不同颜色含义
  2. mysql分页合并同类项,人教版初三数学复习目录(全)
  3. 日紫白飞星算法_年月日时紫白飞星法——紫白(入中)计算办法
  4. 电商-支付相关表的表设计
  5. 微信 服务器参数错误 请重新填写,微信上登录验证出现参数错误怎么解决
  6. 注册网站域名多少钱_申请域名多少钱
  7. Peer Manager
  8. 波形发生器设计c语言文件,波形发生器设计方案.doc
  9. 猫、路由器和交换机的区别和联系
  10. Latex/CSDN字母输入对照表