【深度学习】 Python 和 NumPy 系列教程(十八):Matplotlib详解:2、3d绘图类型(4)3D曲面图(3D Surface Plot)

2023-11-03

目录

 一、前言

二、实验环境

三、Matplotlib详解

1、2d绘图类型

2、3d绘图类型

0. 设置中文字体

1. 3D线框图(3D Line Plot)

2. 3D散点图(3D Scatter Plot)

3. 3D条形图(3D Bar Plot)

4. 3D曲面图(3D Surface Plot)


 一、前言

        Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。

        Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:

  • Python:基本数据类型、容器(列表、元组、集合、字典)、函数、类
  • Numpy:数组创建、数组操作、数组数学、广播
  • Matplotlib:2d绘图、3d绘图、图表自定义、多子图和布局、图表自定义、多子图和布局
  • IPython:创建笔记本、典型工作流程

二、实验环境

matplotlib 3.5.3
numpy 1.21.6
python 3.7.16
  • 运行下述命令检查Python版本
 python --version 
  • 运行下述代码检查Python、NumPy、Matplotlib版本
import sys
import numpy as np
import matplotlib

print("Python 版本:", sys.version)
print("NumPy 版本:", np.__version__)
print("matplotlib 版本:", matplotlib.__version__)

三、Matplotlib详解

        Matplotlib是一个用于创建数据可视化的Python库。它提供了广泛的绘图选项,能够生成各种类型的图表、图形和可视化效果。下面是Matplotlib的一些主要功能:

  1. 绘图风格和类型:Matplotlib支持各种绘图风格和类型,包括线图、散点图、柱状图、饼图、等高线图、3D图等,可以根据需要选择适合的图表类型来展示和分析数据。

  2. 数据可视化:Matplotlib使得将数据转化为可视化表示变得简单,可以使用Matplotlib绘制图表来展示数据的分布、趋势、关系等,这有助于更好地理解数据和发现潜在的模式和关联。

  3. 图表自定义:Matplotlib提供了丰富的图表自定义选项,可以调整图表的标题、标签、坐标轴、线条样式、颜色等。这使得您能够创建符合特定需求和品味的高质量图表。

  4. 多子图和布局:Matplotlib允许您在单个图像中创建多个子图,以便同时展示多个相关的图表或数据视图。您可以自定义子图的布局和排列,以满足特定的展示需求。

  5. 导出图像:Matplotlib支持将图像导出为多种格式,包括PNG、JPEG、PDF、SVG等。这使得您可以方便地将生成的图表保存为文件,或嵌入到文档、报告和演示文稿中。

        无论是进行科学研究、数据分析、报告撰写还是可视化展示,Matplotlib都是一个强大而灵活的工具。它广泛应用于各个领域,如数据科学、机器学习、金融分析、工程可视化等。

1、2d绘图类型

2d绘图(上):折线图、散点图、柱状图、直方图、饼图_QomolangmaH的博客-CSDN博客https://blog.csdn.net/m0_63834988/article/details/132872575?spm=1001.2014.3001.5501https://blog.csdn.net/m0_63834988/article/details/132872575?spm=1001.2014.3001.5501

2d绘图(下):箱线图、热力图、面积图、等高线图、极坐标图_QomolangmaH的博客-CSDN博客https://blog.csdn.net/m0_63834988/article/details/132890656?spm=1001.2014.3001.5501https://blog.csdn.net/m0_63834988/article/details/132890656?spm=1001.2014.3001.5501

2、3d绘图类型

0. 设置中文字体

import matplotlib

matplotlib.rcParams['font.family'] = 'Microsoft YaHei'  # 设置为微软雅黑字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']     # 设置中文字体为黑体

        若不进行该设置,会报错字体缺失

1. 3D线框图(3D Line Plot)

3d绘图类型(1):线框图(Wireframe Plot)_QomolangmaH的博客-CSDN博客https://blog.csdn.net/m0_63834988/article/details/132890293?spm=1001.2014.3001.5502

2. 3D散点图(3D Scatter Plot)

3d绘图类型(2)3D散点图(3D Scatter Plot)_QomolangmaH的博客-CSDN博客https://blog.csdn.net/m0_63834988/article/details/132891434?spm=1001.2014.3001.5502

3. 3D条形图(3D Bar Plot)

3d绘图类型(3)3D条形图(3D Bar Plot)_QomolangmaH的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63834988/article/details/132890907?spm=1001.2014.3001.5502

4. 3D曲面图(3D Surface Plot)

import matplotlib.pyplot as plt
import numpy as np

# 数据准备
x = np.linspace(-5, 5, 100)  # x轴数据范围
y = np.linspace(-5, 5, 100)  # y轴数据范围
x_mesh, y_mesh = np.meshgrid(x, y)  # 创建网格
z = np.sin(np.sqrt(x_mesh**2 + y_mesh**2))  # 曲面高度

# 创建3D图形对象
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 绘制3D曲面图
ax.plot_surface(x_mesh, y_mesh, z, cmap='viridis')

# 设置坐标轴标签
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

# 显示图形
plt.show()

  • xy数组分别表示曲面图的x和y轴数据范围。通过使用np.linspace函数在指定范围内生成100个均匀分布的数据点。
  • 我们创建了一个3D图形对象,并将其添加到子图中。
  • 使用ax.plot_surface函数绘制了3D曲面图
    • x_meshy_meshz参数分别表示曲面图的x、y和z坐标数据。
    • cmap='viridis'参数指定了颜色映射方案(可以根据需要选择其他颜色映射)。
  • 使用ax.set_xlabelax.set_ylabelax.set_zlabel函数设置了坐标轴的标签。

  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【深度学习】 Python 和 NumPy 系列教程(十八):Matplotlib详解:2、3d绘图类型(4)3D曲面图(3D Surface Plot) 的相关文章

随机推荐

  • golang编程cobra-cli库使用

    1 准备 1 1 资源和文档 库 https github com spf13 cobra 文档 https github com spf13 cobra blob master README md 1 2 下载 使用 go get命令下载
  • Centos7升级make和gcc版本到最新

    Background 遇到如下的问题可能就是你make和gcc的版本过低了 需要升级 These critical programs are missing or too old make compiler Check the INSTAL
  • OpenCV之FCN图像分割

    个人主页 风间琉璃 版权 本文由 风间琉璃 原创 在CSDN首发 需要转载请联系博主 如果文章对你有帮助 欢迎关注 点赞 收藏 一键三连 和订阅专栏哦 前言 Fully Convolutional Network FCN 是一种深度学习架构
  • 一文了解各大图数据库查询语言(Gremlin vs Cypher vs nGQL)

    文章的开头我们先来看下什么是图数据库 根据维基百科的定义 图数据库是使用图结构进行语义查询的数据库 它使用节点 边和属性来表示和存储数据 虽然和关系型数据库存储的结构不同 关系型数据库为表结构 图数据库为图结构 但不计各自的性能问题 关系型
  • hibernate 中常用的注解介绍

    定义表名称注解 Entity Table name SYS ROLES schema UAWP Cache usage CacheConcurrencyStrategy NONSTRICT READ WRITE public class R
  • 算法7-6:图的遍历——广度优先搜索(c语言)

    提交 统计 提问 题目描述 广度优先搜索遍历类似于树的按层次遍历的过程 其过程为 假设从图中的某顶点v出发 在访问了v之后依次访问v的各个未曾被访问过的邻接点 然后分别从这些邻接点出发依次访问它们的邻接点 并使 先被访问的顶点的邻接点 先于
  • 【NLP】LSTM总结记录

    目录 前言 RNN 梯度消失和梯度爆炸 梯度裁剪 relu leakyrelu等激活函数 Batch Normalization 批规范化 残差结构 LSTM 长短期记忆网络 LSTM形式 理解LSTM结构 梯度爆炸和消失的解决 pytor
  • MyBatis如何使用 transient 关键字

    MyBatis 是一个持久层框架 用于简化与数据库的交互 在 MyBatis 中 使用 transient 关键字可以标记 Java 对象中的字段 使其在序列化过程中被忽略 在本文中 我们将介绍 MyBatis 的基本用法和如何使用 tra
  • Shell脚本——函数用法

    目录 一 Shell函数的概念 1 Shell函数定义 方法一 方法二 二 函数的返回值 三 函数的传参 四 函数变量的作用范围 五 递归 1 阶乘 脚本命令 操作验证 2 递归目录文件 需求 脚本命令 操作验证 六 函数库 1 建立函数库
  • arxiv网站PDF论文下载速度提升

    arxiv属于国外网站 中国下载网速较慢 推荐使用中科院arxiv的镜像地址 http xxx itp ac cn PDF论文下载速度提升方法 把要访问 arxiv 链接中前面的域名从 https arxiv org 换成 http xxx
  • 花了两天,终于把 Python 的 setup.py 给整明白了

    1 为什么需要对项目分发打包 平常我们习惯了使用 pip 来安装一些第三方模块 这个安装过程之所以简单 是因为模块开发者为我们默默地为我们做了所有繁杂的工作 而这个过程就是 打包 打包 就是将你的源代码进一步封装 并且将所有的项目部署工作都
  • 【华为OD统一考试B卷

    2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为 2023A卷和2023B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是B卷 B卷对应之前专栏的20022部分考题以及新出的
  • 用MATLAB求序列反折

    在这个运算中 x n 以n 0为基准点 以纵轴为对称轴反折得到一个新的序列 即 y n x n 在MATLAB中提供了fliplr函数实现序列反折 fliplr用法是B fliplr A 其中A为矩阵或向量 如果A为矩阵 fliplr函数的
  • 论文笔记: Modeling Extreme Events in Time Series Prediction

    2019 KDD 0 摘要 时间序列预测是数据挖掘中一个深入研究的课题 尽管取得了相当大的改进 但最近基于深度学习的方法忽略了极端事件的存在 这导致将它们应用于实时序列时性能较弱 极端事件是罕见且随机的 但在许多实际应用中确实发挥了关键作用
  • 编写高效的C++程序方法之使用对象池

    对象池技术可以避免在程序的生命期中创建和删除大量对象 如果知道程序需要同一类型的大量对象 而且对象的生命周期都很短 就可以为这些对象创建一个池 pool 进行缓存 只要代码中需要一个对象 就可以向对象池请求 用完此对象时 要把它放回池中 对
  • git客户端通过PUTTY生成公钥和私钥连接GitLab

    参考运维工作笔记 赖荣生 感谢两位的分享 1 使用PUTTY生成公钥和私钥 选择RSA 部分机器上的加密算法不太一样 点击Generate 然后不断的在界面上滑动鼠标 不然生成进度会停止 第一次用的时候傻叉一样等了10分钟也没生成出来 感觉
  • Angular学习笔记 ——input 标签上的【name属性】和【ngModelOptions属性】

    利用 angular forms 创建
  • 使用CSS实现鼠标悬浮标题出现动态下划线

    今天来实现下面图片的效果 要实现这种效果只需要使用到background这个属性了 首先创建有个div 输入一段文字 然后在设置background属性 这时候页面就会出现这样子 文字背景填充满了 无法跟动态图一样那么细 别急 css里还有
  • element 中使用自定义图片icon图标

    修改Element UI自带的icon 替换成自己的图片 定义一个类名 icon使用类名 el icon 类名 background url 你的图片路径 center center no repeat background size 24
  • 【深度学习】 Python 和 NumPy 系列教程(十八):Matplotlib详解:2、3d绘图类型(4)3D曲面图(3D Surface Plot)

    目录 一 前言 二 实验环境 三 Matplotlib详解 1 2d绘图类型 2 3d绘图类型 0 设置中文字体 1 3D线框图 3D Line Plot 2 3D散点图 3D Scatter Plot 3 3D条形图 3D Bar Plo