01 3D plot


1.基本语法

在安装matplotlib之后,自动安装有 mpl_toolkits.mplot3d。

#Importing Libraries
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d#3D Plotting
fig = plt.figure()
ax = plt.axes(projection="3d")#Labeling
ax.set_xlabel('X Axes')
ax.set_ylabel('Y Axes')
ax.set_zlabel('Z Axes')plt.show()

2.Python Cmd

使用pythoncmd 插入相应的语句。

3.举例

(1) Ex1

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST2.PY                     -- by Dr. ZhuoQing 2020-11-16
#
# Note:
#============================================================from headm import *
from mpl_toolkits.mplot3d import axes3dax = plt.axes(projection='3d')
x = [1,2,3,4,5,6,7,8,9]
y = [2,3,4,6,7,8,9,5,1]
z = [5,6,2,4,8,6,5,6,1]ax.plot3D(x,y,z)
ax.set_xlabel('X Axes')
ax.set_ylabel('Y Axes')
ax.set_zlabel('Z Axes')plt.show()#------------------------------------------------------------
#        END OF FILE : TEST2.PY
#============================================================

▲ 3D plot的演示

(2) Ex2

from mpl_toolkits.mplot3d import axes3dax = plt.axes(projection='3d')angle = linspace(0, 2*pi*5, 400)
x = cos(angle)
y = sin(angle)
z = linspace(0, 5, 400)ax.plot3D(x,y,z)
ax.set_xlabel('X Axes')
ax.set_ylabel('Y Axes')
ax.set_zlabel('Z Axes')plt.show()

▲ 3D绘制的例子

(3) Ex3

import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as pltmpl.rcParams['legend.fontsize'] = 10fig = 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()plt.show()

02 绘制Scatter


利用和上面的相同的绘制命令,将原来的plot3D修改成为 scatter即可。

from mpl_toolkits.mplot3d import axes3dax = plt.axes(projection='3d')angle = linspace(0, 2*pi*5, 40)
x = cos(angle)
y = sin(angle)
z = linspace(0, 5, 40)ax.scatter(x,y,z, color='b')
ax.set_xlabel('X Axes')
ax.set_ylabel('Y Axes')
ax.set_zlabel('Z Axes')plt.show()

▲ Scatter 的例子

03 绘制3D Surface


(1) Ex1

▲ 3D surface例子

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST2.PY                     -- by Dr. ZhuoQing 2020-11-16
#
# Note:
#============================================================from headm import *
from mpl_toolkits.mplot3d import axes3dax = plt.axes(projection='3d')x = arange(-5, 5, 0.1)
y = arange(-5, 5, 0.1)
x,y = meshgrid(x, y)
R = sqrt(x**2+y**2)
z = sin(R)ax.plot_surface(x, y, z)
ax.set_xlabel('X Axes')
ax.set_ylabel('Y Axes')
ax.set_zlabel('Z Axes')plt.show()#------------------------------------------------------------
#        END OF FILE : TEST2.PY
#============================================================

▲ 3D 绘制Surface
▲ 绘制3D球表面

(2) 举例

'''
======================
3D surface (color map)
======================Demonstrates plotting a 3D surface colored with the coolwarm color map.
The surface is made opaque by using antialiased=False.Also demonstrates using the LinearLocator and custom formatting for the
z axis tick labels.
'''from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import numpy as npfig = plt.figure()
ax = fig.gca(projection='3d')# Make data.
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)# Plot the surface.
surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,linewidth=0, antialiased=False)# Customize the z axis.
ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))# Add a color bar which maps values to colors.
fig.colorbar(surf, shrink=0.5, aspect=5)plt.show()

▲ 彩色表面绘制

04 绘制contour


#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TESTCONTOUR.PY               -- by Dr. ZhuoQing 2020-11-16
#
# Note:
#============================================================from headm import *delta = 0.025
x = arange(-3.0, 3.0, delta)
y = arange(-2.0, 2.0, delta)
X,Y = meshgrid(x,y)
Z1 = exp(-X**2-Y**2)
X2 = exp(-(X-1)**2-(Y-1)**2)Z=(Z1-X2)*2CS=plt.contour(X,Y,Z)
plt.xlabel("X")
plt.ylabel("Y")
plt.grid(True)
plt.clabel(CS, inline=1, fontsize=8)
plt.title("Simplest default with labels")
plt.tight_layout()
plt.show()#------------------------------------------------------------
#        END OF FILE : TESTCONTOUR.PY
#============================================================

1.Ex1

z(x,y)=e−x2−y2−e−(x−1)2−(y−1)2z\left( {x,y} \right) = e^{ - x^2 - y^2 } - e^{ - \left( {x - 1} \right)^2 - \left( {y - 1} \right)^2 }z(x,y)=e−x2−y2−e−(x−1)2−(y−1)2

▲ 绘制的contour例子

2.Ex2

delta = 0.025
x = arange(-3.0, 3.0, delta)
y = arange(-2.0, 2.0, delta)
X,Y = meshgrid(x,y)
Z1 = exp(-(X+1)**2-(Y+0.5)**2)
Z2 = exp(-(X-1)**2-(Y-0.5)**2)Z=(Z1-Z2)*2

Z(x,y)=e−(x+1)2−(y+0.5)2−e−(x−1)2−(y−0.5)2Z\left( {x,y} \right) = e^{ - \left( {x + 1} \right)^2 - \left( {y + 0.5} \right)^2 } - e^{ - \left( {x - 1} \right)^2 - \left( {y - 0.5} \right)^2 }Z(x,y)=e−(x+1)2−(y+0.5)2−e−(x−1)2−(y−0.5)2

▲ 函数轮廓

from mpl_toolkits.mplot3d import axes3d
from matplotlib import cmax = plt.axes(projection='3d')
ax.set_xlabel('X Axes')
ax.set_ylabel('Y Axes')
ax.set_zlabel('Z Axes')delta = 0.025
x = arange(-3.0, 3.0, delta)
y = arange(-2.0, 2.0, delta)
X,Y = meshgrid(x,y)
Z1 = exp(-(X+1)**2-(Y+0.5)**2)
Z2 = exp(-(X-1)**2-(Y-0.5)**2)Z=(Z1-Z2)*2#CS=plt.plot_surface(X,Y,Z, camp=cm.coolwarm)
ax.plot_surface(X,Y,Z, cmap=cm.coolwarm)plt.show()


Python 中的3Dplot相关推荐

  1. 如何优雅的在python中暂停死循环?

    死循环 有时候在工作中可能会遇到要一直执行某个功能的程序,这时候死循环就派上用途了,python中死循环的具体形式大致如下 while True:run_your_code() 结束死循环 通常我们结 ...

  2. 关于python中的dict和defaultdict

    dict 在Python中如果访问字典中不存在的键,会引发KeyError异常,所以一般当我们比如统计一句话的词频时候,我们总是使用这样的处理方式: strings = ('puppy', 'kitt ...

  3. python中的新式类与旧式类的一些基于descriptor的概念(上)

    python中基于descriptor的一些概念(上) 1. 前言 2. 新式类与经典类 2.1 内置的object对象 2.2 类的方法 2.2.1 静态方法 2.2.2 类方法 2.3 新式类(n ...

  4. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  5. Python中正则表达式用法 重点格式以这个为准_首看_各种问题

    20210811 https://www.jb51.net/article/101258.htm 一.惰性模式的概念: 此模式和贪婪模式恰好相反,它尽可能少的匹配字符以满足正则表达式即可,例如: va ...

  6. 逗号分隔的字符串转换为Python中的列表 split

    将逗号分隔的字符串转换为Python中的列表 给定一个字符串: 它是由逗号分隔的几个值的序列: mStr = '192.168.1.1,192.168.1.2,192.168.1.3' 如何将字符串转 ...

  7. [翻译]Python中yield的解释

    问题: Python中yield关键字的作用是什么?它做了什么? 例如,我想理解以下代码 def node._get_child_candidates(self, distance, min_dist ...

  8. 全面理解Python中的类型提示(Type Hints)

    众所周知,Python 是动态类型语言,运行时不需要指定变量类型.这一点是不会改变的,但是2015年9月创始人 Guido van Rossum 在 Python 3.5 引入了一个类型系统,允许开发 ...

  9. python中break和continue的区别

    python中break和continue的区别 break 结束for 或者while 循环  后面还没循环到的 不再循环 continue 当满足某种条件时结束当前值的循环 后面没有循环的继续循环 ...

最新文章

  1. libvmi编译问题
  2. js 获取域名_确定你会使用JS操作Url吗?
  3. pythonfor循环break_python 中 for 循环 if循环 break
  4. Linux字符驱动程序的基本结构与函数
  5. oracle行迁移实验,Oracle 行迁移 amp; 行链接的检测与消除
  6. python区块链框架_20分钟,我用Python实现区块链架构!
  7. gd动态曲线 php_php中用GD绘制折线图
  8. 基于React的全屏滑动插件react-fullslip
  9. HDU2022 海选女主角【入门】
  10. 微软将VB和C#合二为一 年底推出全新平台VS2010
  11. 解决“HTTP Error 401 – Unauthorized”
  12. mysql 触发器存储过程的区别_MySQL触发器、存储过程实现
  13. ArcGIS的基本使用
  14. 如何进行普通家用无线路由器的性能测试?
  15. 972_MISRA C 2004规范解读1
  16. 移动端车牌识别sdk如何开发app
  17. 模式分解保持函数依赖判断——数据库考试复习
  18. php168+v9+下载,PHPCMS-PHPCMS V9-PHPCMS下载 V9.1正式版-完美下载
  19. Lipschitz常数、Lipschitz条件
  20. 【机器学习】逻辑回归案例一:保险与年龄之间关系分析

热门文章

  1. AngularJS 初始化加载流程
  2. php 回收周期(Collecting Cycles)
  3. 利用Powershell查询AD中账号属性
  4. 申请重新邮寄CCNA证书成功!!!!!(转)
  5. yii2-Ueditor百度编辑器
  6. linux系统硬盘表识
  7. 【Python之旅】第五篇(一):Python Socket通信原理
  8. Win2008 R2实战之只读域控制器部署(图)
  9. 安全×××限 爱因斯坦对安全进程的启示
  10. 如何成为Java程序员