当前位置: 首页 > news >正文

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 类的基本使用方式如下:

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 创建基本的三维坐标轴
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 绘制三维散点图
# 使用相同的步骤创建三维坐标轴
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 绘制三维曲面图
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 轴的标签。
  • 在绘制三维图形时,性能可能会受到数据量大小的影响。对于非常大的数据集,可能需要优化或使用更高效的可视化方法。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • javafx场景切换,网络编程踩坑
  • 力扣题解( 让字符串成为回文串的最少插入次数)
  • C++知识要点总结笔记
  • 关于Qt Creator 使用Qt Quick的Design模式设置
  • 【运维】docker批量删除临时镜像(两种方式)
  • Postman下载及使用说明
  • 人工智能算法工程师(中级)课程9-PyTorch神经网络之全连接神经网络实战与代码详解
  • 网络安全设备——EDR
  • 【Linux】Ubuntu配置JDK环境、MySQL环境
  • 无障碍全免费上手智能体:Autogen Studio结合Deepseek Coder打造一款AI旅游规划师
  • Vuforia AR篇(八)— AR塔防上篇
  • Wireshark 对 https 请求抓包并展示为明文
  • matlab R2016b安装cplex12.6,测试时cplex出现出现内部错误的解决方法
  • “论软件维护方法及其应用”写作框架,软考高级论文,系统架构设计师论文
  • 前端挑战:Tkinter布局与设计【三种布局】
  • 分享的文章《人生如棋》
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • co.js - 让异步代码同步化
  • css系列之关于字体的事
  • ES6简单总结(搭配简单的讲解和小案例)
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Unix命令
  • Web标准制定过程
  • 记一次删除Git记录中的大文件的过程
  • 我的zsh配置, 2019最新方案
  • 异常机制详解
  • Java性能优化之JVM GC(垃圾回收机制)
  • Spring第一个helloWorld
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​如何防止网络攻击?
  • ## 1.3.Git命令
  • #13 yum、编译安装与sed命令的使用
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • (09)Hive——CTE 公共表达式
  • (11)MATLAB PCA+SVM 人脸识别
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (转)ObjectiveC 深浅拷贝学习
  • .jks文件(JAVA KeyStore)
  • .NET MVC 验证码
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .Net 路由处理厉害了
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .NetCore发布到IIS
  • .Net的DataSet直接与SQL2005交互
  • .net项目IIS、VS 附加进程调试
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • [7] CUDA之常量内存与纹理内存
  • [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
  • [C#小技巧]如何捕捉上升沿和下降沿
  • [C/C++]数据结构 堆的详解
  • [C++参考]拷贝构造函数的参数必须是引用类型