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

2023-11-06

目录

 一、前言

二、实验环境

三、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) 的相关文章

随机推荐

  • OceanBase:编译、安装和配置手册

    概述 OceanBase是 一个高性能的分布式表格系统 提供类似BigTable的性能和扩展性 但表格中保存的是强类型的数据 比如integer string datetime等 它使用C 编写 运行于64位Linux环境下 生产环境下需要
  • Ubuntu20.04编译安装opencv3.2和opencv_contrib-3.2

    图像特征提取中需要用到SIFT等算法 因此不得不安装从源码编译安装opencv contrib 网上有很多教程 但是在不同的环境下多少会出现一些错误 针对Ubuntu20 04 gcc 7环境下对opencv opencv contrib编
  • ios内嵌h5点击输入框页面放大

    首先咱们这个是基于修改meta没卵用的情况 去修改这个input的style把font size改成16px 我的机型是xr 自己用了反正有效 希望对你有帮助
  • 实战:tomcat版本升级

    tomcat版本升级 由原来的apache tomcat 7 0 96升级到apache tomcat 7 0 109 版本 1 先把原来的备份 mv apache tomcat 7 0 96 1 apache tomcat 7 0 96
  • 01-Kafaka

    1 Kafka 2 的安装与配置 1 上传kafka 2 12 1 0 2 tgz到服务器并解压 tar zxf kafka 2 12 1 0 2 tgz C opt 2 配置环境变量并更新 编辑profile配置文件 vim etc pr
  • 春招大厂面试升级笔记!光CRUD已经不能满足了

    大厂的面试已经升级 早就不满足于CRUD了 今天给大家分享的就是大厂最近升级的面试小 炒 全篇共计为大家详细划分了19个部分 字数超过了20W字 面试题数量超过了1500道 同时结合了大量的实例和代码 涵盖了 Java基础 并发编程 JVM
  • python中sort()和sorted()排序函数用法详解

    python中对数据的排序主要使用sort 和sorted 方法 1 sort 方法 语法结构 列表序列 sort key None reverse False 注意 reverse 表示排序规则 reverse True 降序 rever
  • typora插件_Typora + PicGo 编写博客的神器

    一 软件版本要求 typora 0 9 93 使用最新版本即可 下载链接 https www typora io PicGo 2 2 0以上 也是最好用最新版的 下载链接 https github com Molunerfinn PicGo
  • stable diffusion实践操作-embedding(TEXTUAL INVERSION)

    系列文章目录 本文专门开一节写图生图相关的内容 在看之前 可以同步关注 stable diffusion实践操作 文章目录 系列文章目录 前言 1 embeddding的功能 2 如何去下载 https civitai com models
  • 粽子SHOP-粽子商城官网-一款简洁大气的官网源码

    介绍 一款简洁大气的官网源码 无后台 直接上传服务器或主机即可 可自行编辑内容非常实用的个人介绍页面 大家需要的自行下载 网盘下载地址 http zijieyunpan com OSdKfaj4W2z0 图片
  • FPGA时序分析约束

    时序分析约束 时序分析 时序分析的目的就是通过分析fpga设计各个寄存器之间的数据和时钟传输路径 来分析数据延迟和时钟延迟之间的关系 保证整个系统中的所有寄存器都能正确存储数据 时序约束 两个作用 1 告知EDA软件 该设计需要达到怎么样的
  • 程序员如何逆袭,达到财富自由?

    首先 先给程序员做一个定义 我定义的是 一个普通的程序员 家里普普通通 自己也没在大厂 一个中等公司 拿着两万左右的薪水 年终奖一般发不超过两个月 这样的程序员 逆袭的路有三条 背题 去大厂 混到高P拿股票 劲熬 找到靠谱的创业公司 拿到期
  • Python实现汽车油耗预测_基于Tensorflow2.X

    目录 一 开发环境 二 代码实现 2 1 准备操作 2 1 1 导入所需模块 2 1 2 matplotlib无法正常显示中文的解决方案 若无此情况可跳过 2 2 加载数据集 2 3 数据处理 2 3 1 数据清洗 2 3 2 数据转换 2
  • 学习underscore之比较两个元素是否相同

    underscore1 11 0 中判断两个参数相同的函数为isEqual isEqual 函数认为以下相等 0 与 0 不相等 NaN 与 NaN相等 a i 与 new RegExp a i 相等 5 与 new String 5 相等
  • 【Qt OpenGL教程】10:加载3D世界,并在其中漫游

    第10课 加载3D世界 并在其中漫游 参照NeHe 这次教程中 我将教大家如何加载一个3D世界 并在3D世界中漫游 这相较于我们只能创造一个旋转的立方体或一群星星时有很大的进步了 当然这节课代码难度不低 但也不会很难 只要你跟着我慢慢一步一
  • flutter 生成jks文件 获取sha1

    debug版本 SHA1 C Program Files Java jdk1 8 0 191 bin keytool exe list keystore debug keystore 找到这个目录下的keytool exe 拖进cmd 然后
  • Spring 与 MyBatis 的整合

    1 整合思路 思路 将MyBatis框架中使用到的核心组件配置到Spring容器中 交给Spring来创建和管理 具体来说是将需要自行编码通过SqlSessionFactoryBuilder读取配置文件 构建SqlSessionFactor
  • 【刷题篇】贪心算法(一)

    文章目录 分割平衡字符串 买卖股票的最佳时机 跳跃游戏 钱币找零 分割平衡字符串 class Solution public int balancedStringSplit string s int len s size int cnt 0
  • MAVEN setting.xml

    MAVEN setting xml
  • 【深度学习】 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