python matplotlib绘制三维图的示例


Posted in Python onSeptember 24, 2020

作者:catmelo 本文版权归作者所有

链接:https://www.cnblogs.com/catmelo/p/4162101.html

本文参考官方文档:http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html

起步

新建一个matplotlib.figure.Figure对象,然后向其添加一个Axes3D类型的axes对象。
其中Axes3D对象的创建,类似其他axes对象,只不过使用projection='3d'关键词。

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

3D曲线图

python matplotlib绘制三维图的示例

import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

mpl.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
ax.plot(x, y, z, label='parametric curve')
ax.legend()
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()

简化用法:

python matplotlib绘制三维图的示例

from pylab import *
from mpl_toolkits.mplot3d import Axes3D

plt.gca(projection='3d')
plt.plot([1,2,3],[3,4,1],[8,4,1],'--')
plt.xlabel('X')
plt.ylabel('Y')
#plt.zlabel('Z') #无法使用

3D散点图

python matplotlib绘制三维图的示例

import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

def randrange(n, vmin, vmax):
  return (vmax-vmin)*np.random.rand(n) + vmin

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
n = 100
for c, m, zl, zh in [('r', 'o', -50, -25), ('b', '^', -30, -5)]:
  xs = randrange(n, 23, 32)
  ys = randrange(n, 0, 100)
  zs = randrange(n, zl, zh)
  ax.scatter(xs, ys, zs, c=c, marker=m)

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()

以上就是matplotlib绘制三维图的示例的详细内容,更多关于matplotlib绘制三维图的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
用python写asp详细讲解
Dec 16 Python
Python实现根据IP地址和子网掩码算出网段的方法
Jul 30 Python
Python出现segfault错误解决方法
Apr 16 Python
Python的网络编程库Gevent的安装及使用技巧
Jun 24 Python
Python yield 使用方法浅析
May 20 Python
python机器学习理论与实战(四)逻辑回归
Jan 19 Python
Python中print和return的作用及区别解析
May 05 Python
Django网络框架之创建虚拟开发环境操作示例
Jun 06 Python
使用 Python 处理 JSON 格式的数据
Jul 22 Python
python+selenium 点击单选框-radio的实现方法
Sep 03 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
Jan 13 Python
Pycharm导入anaconda环境的教程图解
Jul 31 Python
python使用matplotlib:subplot绘制多个子图的示例
Sep 24 #Python
Django路由层URLconf作用及原理解析
Sep 24 #Python
Python xlrd/xlwt 创建excel文件及常用操作
Sep 24 #Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 #Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 #Python
python 多线程共享全局变量的优劣
Sep 24 #Python
改变 Python 中线程执行顺序的方法
Sep 24 #Python
You might like
深入eAccelerator与memcached的区别详解
2013/06/06 PHP
php实现递归的三种基本方式
2020/07/04 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
简单通用的JS滑动门代码
2008/12/19 Javascript
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
在Node.js中实现文件复制的方法和实例
2014/06/05 Javascript
javascript进行数组追加方法小结
2014/06/16 Javascript
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
如何实现删除numpy.array中的行或列
2018/05/08 Python
python中partial()基础用法说明
2018/12/30 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
python绘制规则网络图形实例
2019/12/09 Python
python实现将range()函数生成的数字存储在一个列表中
2020/04/02 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
基于PyTorch中view的用法说明
2021/03/03 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
临床医学应届生求职信
2013/11/06 职场文书
房屋维修协议书范本
2014/09/25 职场文书
开学典礼校长致辞
2015/07/29 职场文书
入党申请书怎么写?
2019/06/21 职场文书
教你一步步实现一个简易promise
2021/11/02 Javascript
MYSQL如何查看操作日志详解
2022/05/30 MySQL