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】总结

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

相关推荐
xier_ran4 分钟前
【infra之路】AI 编译器学习笔记(七):Linalg 与 Tiling——把迭代空间切成块
人工智能·笔记·学习
lzqrzpt14 分钟前
LED驱动电源选型核心参数解析与工程适配准则
python·单片机·嵌入式硬件
承渊政道15 分钟前
Linux网络学习【应用层自定义协议与序列化实战:从手写序列化与反序列化到深入理解进程间关系与守护进程】
linux·网络·学习·ubuntu·json·序列化与反序列化
普通人616 分钟前
php处理百度编辑器有误html
开发语言·编辑器·html·php·1024程序员节
李航198318 分钟前
SketchUp国产平替来了,功能非常接近,还有AI版本自动建模
人工智能·python·计算机视觉·ai·ai编程
玩AI的奶茶19 分钟前
什么情况适合租算力?一张场景对照表,加三个自测问题
大数据·linux·服务器·数据库·人工智能·python
你想知道什么?22 分钟前
标准化与归一化-学习笔记
笔记·学习
沉下心来学鲁班24 分钟前
具身智能入门:用 Python 让 MicroDuck 机器狗学会走路
开发语言·人工智能·python·机器人
geovindu25 分钟前
rust: Chain of Responsibility Pattern (续)
开发语言·后端·设计模式·rust·责任链模式·行为模式
诚心呈意共享外卖配送系统26 分钟前
多平台订单聚合系统的技术架构:接 API 只是开始
java·开发语言·架构·系统架构·创业创新