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

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

相关推荐
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】LLM会话管理模块设计
网络·c++·人工智能·学习·大模型
萧行之1 小时前
可视化技术复盘:从图形语法看 D3、Vega-Lite、ECharts、Observable Plot
前端·学习·数据可视化
小此方1 小时前
「C++AI大模型接入SDK」(一) API接入与本地两种方式对比、API Key获取、API报文详解与简单API的构建
开发语言·c++·人工智能
vicky05172 小时前
解决 ModuleNotFoundError: No module named ‘torch‘ 笔记
python
wuyk5552 小时前
Python实战项目02:学生成绩管理系统(控制台|CSV导出|完整落地)
开发语言·python
qq5918406858 小时前
uiautomator2自动化安卓手机操作
python
80s7779 小时前
动态代理和静态代理的区别,动态代理怎么提高网络安全性
python
浪子明X9 小时前
十六位账本怎样发现传输差错:Internet Checksum 生活类比
开发语言
小弥儿9 小时前
GitHub今日热榜 | 2026-09-15:AI 智能体与本地生成工具领跑
学习·开源
老当益壮梁奶奶10 小时前
51单片机DS18B20温度传感器详解:单总线时序与C51驱动实现
笔记·stm32·单片机·嵌入式硬件·51单片机