python画图|3D图基础教程

python画3D图和2D流程类似:

【a】定义一个自变量x;

【b】定义两个因变量y和z;

【c】直接输出plot(x,y,z)

今天就一起快乐学习一下画3D图的基础教程。

【1】官网教程

打开官网,可以迅速找到学习教程,参考下述链接:

https://matplotlib.org/stable/plot_types/3D/plot3d_simple.html

然后我们解读一下示例代码。

复制代码
import matplotlib.pyplot as plt #引入画图模块matplotlib
import numpy as np #引入计算模块numpy

plt.style.use('_mpl-gallery') #暂未找到实际意义,可先不用管。经测试,是一种控制输出大小的模板

# Make data
n = 100 #定义常数
xs = np.linspace(0, 1, n) #定义自变量[0,1),中间取值100个点
ys = np.sin(xs * 6 * np.pi) #定义因变量
zs = np.cos(xs * 6 * np.pi) #定义因变量

# Plot
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})  #定义一个图,用ax控制坐标轴属性
# subplot_kw={"projection": "3d"},projection是指将采取哪种画图方法,3d就是告诉matplotlib要画三维图
ax.plot(xs, ys, zs)  #画三维图

ax.set(xticklabels=[], #设置x轴
       yticklabels=[], #设置y轴
       zticklabels=[]) #设置z轴

plt.show() #输出图形

【2】代码修改

学习完官网教程之后,我们先把plt.style.use('_mpl-gallery') 转化为注释,再把zs由zs = np.cos(xs * 6 * np.pi)改为:

zs = np.sin(ys * 6 * np.pi)

输出结果为:

++图1++

然后,我们尝试把as.plot更换为ax.plot(xs,xs,xs),更换后的结果为:

++图2++

然后,我们尝试把as.plot更换为ax.plot(xs,ys,ys),更换后的结果为:

++图3++

然后,我们尝试把as.plot更换为ax.plot(xs,zs,zs),更换后的结果为:

++图4++

然后,增加标签:

复制代码
ax.set_xlabel('xs') 
ax.set_ylabel('ys') 
ax.set_zlabel('zs')

这时候的输出图形为:

++图5++

由图1至图5,我们灵活修改了输出图形,并增加了轴的标签。

完整代码为:

python 复制代码
import matplotlib.pyplot as plt #引入画图模块matplotlib
import numpy as np #引入计算模块numpy

#plt.style.use('_mpl-gallery') #暂未找到实际意义,可先不用管。经测试,是一种控制输出大小的模板

# Make data
n = 100 #定义常数
xs = np.linspace(0, 1, n) #定义自变量[0,1),中间取值100个点
ys = np.sin(xs * 6 * np.pi) #定义因变量
zs = np.sin(ys * 6 * np.pi) #定义因变量

# Plot
fig, ax = plt.subplots(subplot_kw={"projection": "3d"})  #定义一个图,用ax控制坐标轴属性
# subplot_kw={"projection": "3d"},projection是指将采取哪种画图方法,3d就是告诉matplotlib要画三维图
ax.plot(xs, zs, zs)  #画z三维图

ax.set(xticklabels=[], #设置x轴
       yticklabels=[], #设置y轴
       zticklabels=[]) #设置z轴
ax.set_xlabel('xs') #设置x轴标签
ax.set_ylabel('ys') #设置y轴标签
ax.set_zlabel('zs') #设置z轴标签
plt.show() #输出图形

【3】总结

本次学习了三维图的基本画法,并尝试修改了因变量表达式、三维图画图变量,并实现了坐标轴标签的输出。

相关推荐
万邦科技Lafite6 分钟前
利用淘宝开放API接口监控商品状态,掌握第一信息
大数据·python·电商开放平台·开放api接口·淘宝开放平台
Hy行者勇哥2 小时前
Python 与 VS Code 结合操作指南
开发语言·python
大力水手(Popeye)2 小时前
Pytorch——tensor
人工智能·pytorch·python
饕餮争锋3 小时前
设计模式笔记_行为型_访问者模式
笔记·设计模式·访问者模式
不羁。。5 小时前
【撸靶笔记】第七关:GET - Dump into outfile - String
数据库·笔记·oracle
飞翔的佩奇6 小时前
【完整源码+数据集+部署教程】表盘指针检测系统源码和数据集:改进yolo11-CA-HSFPN
python·yolo·计算机视觉·数据集·yolo11·表盘指针检测
larance7 小时前
SQLAlchemy 的异步操作来批量保存对象列表
数据库·python
搏博7 小时前
基于Python3.10.6与jieba库的中文分词模型接口在Windows Server 2022上的实现与部署教程
windows·python·自然语言处理·flask·中文分词
麦兜*8 小时前
Swift + Xcode 开发环境搭建终极指南
开发语言·ios·swiftui·xcode·swift·苹果vision pro·swift5.6.3
lxmyzzs8 小时前
pyqt5无法显示opencv绘制文本和掩码信息
python·qt·opencv