Matplotlib库学习之mpl_toolkits.mplot3d.Axes3D函数

Matplotlib库学习之mpl_toolkits.mplot3d.Axes3D函数

一、简介

mpl_toolkits.mplot3d.Axes3D 是 Matplotlib 的 mpl_toolkits.mplot3d 工具包中的一个类,用于创建三维坐标轴(3D Axes)。这个类继承自 matplotlib.axes.Axes,提供了在三维空间中绘制图形的能力,非常适合于科学计算和工程领域中的三维数据可视化。

二、语法和参数

mpl_toolkits.mplot3d.Axes3D 类的基本使用方式如下:

python 复制代码
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
  • fig:一个 matplotlib.figure.Figure 实例。
  • add_subplot:用于在图形上添加子图的方法。
  • projection:指定子图的类型,对于三维坐标轴,应设置为 '3d'
三、实例
3.1 创建基本的三维坐标轴
python 复制代码
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 创建一个新的图形
fig = plt.figure()
# 添加一个三维坐标轴
ax = fig.add_subplot(111, projection='3d')
# 绘制三维线
ax.plot([1, 2, 3], [4, 5, 6], [7, 8, 9])
# 显示图形
plt.show()

输出:一个包含从点 (1,4,7) 到 (3,6,9) 的三维线条的窗口。

3.2 绘制三维散点图
python 复制代码
# 使用相同的步骤创建三维坐标轴
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 绘制三维散点图
ax.scatter([1, 2, 3], [4, 5, 6], [7, 8, 9])
# 显示图形
plt.show()

输出:一个包含三个散点的窗口,散点位置分别为 (1,4,7),(2,5,8) 和 (3,6,9)。

3.3 绘制三维曲面图
python 复制代码
import numpy as np

# 创建 x, y 网格
x = y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
# 计算 z 值
z = np.sin(np.sqrt(x**2 + y**2))

# 创建一个新的图形和三维坐标轴
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 绘制三维曲面图
surf = ax.plot_surface(x, y, z, cmap='viridis')
# 添加颜色条
fig.colorbar(surf)
# 显示图形
plt.show()

输出:一个包含 sin(sqrt(x^2 + y^2)) 形状的三维曲面图的窗口,以及一个颜色条。

四、注意事项
  • 在使用 Axes3D 类之前,需要导入 matplotlib.pyplotmpl_toolkits.mplot3d
  • projection='3d' 参数是必需的,以确保创建的是三维坐标轴。
  • 三维坐标轴可以绘制多种三维图形,如线条、散点、曲面等。
  • 与二维坐标轴相比,三维坐标轴增加了 ax.set_zlim([zmin, zmax]) 方法来设置 z 轴的范围,以及 ax.set_zlabel('label') 方法来设置 z 轴的标签。
  • 在绘制三维图形时,性能可能会受到数据量大小的影响。对于非常大的数据集,可能需要优化或使用更高效的可视化方法。
相关推荐
马***4112 小时前
适配成人英语学习痛点,打造落地性强的学习辅助方式
人工智能·学习
小拉达不是臭老鼠5 小时前
Unity学习_ScriptableObject
学习·unity
MartinYeung56 小时前
[论文学习]LLM 与其他 AI 模型的隐私考量:输入与输出隐私框架方法
人工智能·学习
(●—●)橘子……6 小时前
力扣第503场周赛练习理解
python·学习·算法·leetcode·职场和发展·周赛
CG_MAGIC8 小时前
三渲二材质:Blender/SU生成动漫风格效果图
3d·blender·材质·贴图·效果图·渲云渲染
AOwhisky8 小时前
MySQL 学习笔记(第一期):数据库基础与 MySQL 初探
运维·数据库·笔记·学习·mysql·云计算
try2find9 小时前
Agent学习之补充my_plan_solve_agent
学习
想你依然心痛9 小时前
HarmonyOS 6(API 23)实战:打造“光码智学舱“——AI编程学习新范式
学习·ar·ai编程·harmonyos·智能体
jiayong2311 小时前
数字孪生、虚拟仿真、3D建模 概念区别联系与技术清单
3d·3d建模·数字孪生·虚幻引擎
一口吃俩胖子11 小时前
【脉宽调制DCDC功率变换学习笔记023】渐进分析法
笔记·学习