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中SOAP项目的介绍及其在web开发中的应用
Apr 14 Python
浅谈Python中列表生成式和生成器的区别
Aug 03 Python
python 输入一个数n,求n个数求乘或求和的实例
Nov 13 Python
在pandas多重索引multiIndex中选定指定索引的行方法
Nov 16 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
Aug 15 Python
scikit-learn线性回归,多元回归,多项式回归的实现
Aug 29 Python
Python全栈之列表数据类型详解
Oct 01 Python
python实现贪吃蛇游戏源码
Mar 21 Python
深入理解Python 多线程
Jun 16 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
Nov 05 Python
python获取对象信息的实例详解
Jul 07 Python
python保存图片的四个常用方法
Feb 28 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
SONY SRF-40W电路分析
2021/03/02 无线电
php截取utf-8中文字符串乱码的解决方法
2010/03/29 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
2018/03/12 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
javascript的创建多行字符串的7种方法
2014/04/29 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
如何在node的express中使用socket.io
2014/12/15 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python将文本分每两行一组并保存到文件
2018/03/19 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
Pycharm如何打断点的方法步骤
2019/06/13 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
numpy ndarray 取出满足特定条件的某些行实例
2019/12/05 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
关于iframe跨域使用postMessage的实现
2019/10/29 HTML / CSS
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
咨询公司各岗位职责
2013/12/02 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
火烧圆明园观后感
2015/06/03 职场文书
争做文明公民倡议书
2019/06/24 职场文书
解析目标检测之IoU
2021/06/26 Python
工厂无线对讲系统解决方案
2022/02/18 无线电
vue+iview实现手机号分段输入框
2022/03/25 Vue.js