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

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

相关推荐
AllData公司负责人7 分钟前
通过Postgresql同步到Doris,全视角演示AllData数据中台核心功能效果,涵盖:数据入湖仓,数据同步,数据处理,数据服务,BI可视化驾驶舱
java·大数据·数据库·数据仓库·人工智能·python·postgresql
Hello.Reader31 分钟前
算法基础(十)——分治思想把大问题拆成小问题
java·开发语言·算法
一只大袋鼠33 分钟前
JavaWeb四种文件上传方式(下篇)
java·开发语言·springmvc·javaweb
风兮雨露34 分钟前
VMware虚拟机(安装/绿色版)
学习
koo3641 小时前
周报5.10
笔记
TE-茶叶蛋1 小时前
深入研究 yudao-framework 模块:Java 编程能力提升指南
java·开发语言
Flittly1 小时前
【LangGraph新手村系列】(5)时间旅行:浏览历史、分叉时间线与修改过去
python·langchain
逻辑驱动的ken1 小时前
Java高频考点场景题24
java·开发语言·面试·职场和发展·求职招聘
兔小盈1 小时前
多线程-(五)线程安全之内存可见性
java·开发语言·多线程
zl_dfq2 小时前
python学习8 之 【集合、datetime模块、字典】
学习