菜鸡的第一篇博客。学习一下大佬的笔记。

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

方法一、利用关键字“projection=3D”来实现

#方法一、利用关键字”objection=3d“
from matplotlib import pyplot as plt#定义坐标轴
fig=plt.figure()
ax1=plt.axes(projection='3d')

方法二、利用三维轴通过从mpl_toolkits.mplot3d导入 Axes3D

#方法二、利用三维轴
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D#定义图像和三维格式坐标轴
fig=plt.figure()
ax2=Axes3D(fig)

2.三维曲线和散点

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

import numpy as np
# 基于ax1变量绘制三维图
#设置xyz方向的变量(空间曲线)
z=np.linspace(0,13,1000)#在1~13之间等间隔取1000个点
x=5*np.sin(z)
y=5*np.cos(z)#设置xyz方向的变量(散点图)
zd=13*np.random.random(100)
xd=5*np.sin(zd)
yd=5*np.cos(zd)#设置坐标轴
ax1.set_xlabel('X')
ax1.set_ylabel('Y')
ax1.set_zlabel('Z')
ax1.scatter(xd,yd,zd,cmap='Blues') #绘制散点图
ax1.plot3D(x,y,z,'gray')#绘制空间曲线
plt.show()#显示图像

3.空间曲面

import numpy as np#定义新坐标轴
fig=plt.figure()
ax3=plt.axes(projection='3d')#定义三维数据
xx=np.arange(-5,5,0.5)
yy=np.arange(-5,5,0.5)#生成网格点坐标矩阵,对x和y数据执行网格化
X,Y=np.meshgrid(xx,yy)#计算z轴数据
Z=np.sin(X)+np.cos(Y)#绘图
#函数plot_surface期望其输入结构为一个规则的二维网格
ax3.plot_surface(X,Y,Z,cmap='rainbow') #cmap是颜色映射表
plt.title("3D")
plt.show()

如果加入渲染时的步长,会得到更加清晰细腻的图像 。其中的row和cloum_stride为横竖方向的绘图采样步长,越小绘图越精细。

import numpy as np#定义新坐标轴
fig=plt.figure()
ax3=plt.axes(projection='3d')#定义三维数据
xx=np.arange(-5,5,0.1)
yy=np.arange(-5,5,0.1)#生成网格点坐标矩阵,对x和y数据执行网格化
X,Y=np.meshgrid(xx,yy)#计算z轴数据
Z=np.sin(X)+np.cos(Y)#绘图
ax3.plot_surface(X,Y,Z,rstride = 1, cstride = 1,cmap='rainbow') #cmap是颜色映射表
plt.title("3D")
plt.show()

4.等高线

将等高线投影到不同的面上

import numpy as np#定义新坐标轴
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.8,cmap='winter')     #生成表面, alpha 用于控制透明度
ax4.contour(X,Y,Z,zdir='z', offset=-3,cmap="rainbow")  #生成z方向投影,投到x-y平面,offset表示离视角轴0点的距离
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
import numpy as np#定义坐标轴
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, 20)))     #生成散点.利用c控制颜色序列,s控制大小plt.show()

参考链接:Python三维绘图--Matplotlib_TomRen-CSDN博客_python画三维图

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. sm4算法(附源码、测试代码)
  2. angularjs php上传文件,AngularJS 文件上传 的功能你了解的多少?几分钟就让你了解angularjs的文件上传...
  3. 第一篇:Mysql数据类型
  4. 如何删除空文件夹Java_JAVA实现将磁盘中所有空文件夹进行删除的代码
  5. 前端学习(3056):vue+element今日头条管理-反馈
  6. MySQL:数据库导入
  7. 容器编排技术 -- Pod 安全策略
  8. 下标要求数组或指针类型_算法一看就懂之「 数组与链表 」
  9. 选择标签至文本域效果,可多选/可过滤重复/可限制个数
  10. linux bsd命令,科学网—Linux/BSD下join命令使数据以tab为分隔符的方法 - 李雷廷的博文...
  11. html动态创建table不成功的一个问题
  12. IntelliJ IDEA for CleanCode
  13. cad编辑节点快捷键是什么_cad2018快捷键大全
  14. 大数据技术原理与应用学习笔记(一)
  15. 压铸件孔隙率的检测与等级测定
  16. 利用Tensorflow构建RNN并对序列数据进行建模
  17. 性别分为男子组和女子组
  18. Moses安装全记录
  19. 程序员睡前发「73 76 79 86 85」,女孩熬夜破解发现竟是表白密码!
  20. Python/练习题

热门文章

  1. qq传输文件为什么服务器忙,win10系统qq接收文件慢一直显示传输连接中的教程
  2. java于网络:P2P聊天系统
  3. 光圈和快门速度的组合
  4. python爬取网站突破_python最强的代理池,突破IP的封锁爬取海量数据
  5. 生物信息学习——bowtie实例解析
  6. WPS使用格式刷复制样式之后重新排序
  7. 输出图形(循环程序,任意字符) 三角形、矩形、平行四边形、菱形
  8. H3C S5820V2 MSR36-20
  9. http请求417错误
  10. 服务器win2003系统升级,Windows server 2003 升级 到2008 R2