【深度学习】 Python 和 NumPy 系列教程(二十):Matplotlib详解:2、3d绘图类型(6)3D向量场图(3D Vector Field Plot)

2023-10-26

目录

 一、前言

二、实验环境

三、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)

5. 3D等高线图(3D Contour Plot)

6. 3D向量场图(3D Vector Field 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.5501icon-default.png?t=N7T8https://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.5501icon-default.png?t=N7T8https://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博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63834988/article/details/132890293?spm=1001.2014.3001.5501

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.5501icon-default.png?t=N7T8https://blog.csdn.net/m0_63834988/article/details/132891434?spm=1001.2014.3001.5501

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

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

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

3d绘图类型(5)3D等高线图(3D Contour Plot)_QomolangmaH的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63834988/article/details/132891652?spm=1001.2014.3001.5501

5. 3D等高线图(3D Contour Plot)

3d绘图类型(5)3D等高线图(3D Contour Plot)_QomolangmaH的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63834988/article/details/132891816?spm=1001.2014.3001.5501

6. 3D向量场图(3D Vector Field Plot)

import matplotlib.pyplot as plt
import numpy as np

# 数据准备
x = np.linspace(-2, 2, 10)  # x轴数据范围
y = np.linspace(-2, 2, 10)  # y轴数据范围
z = np.linspace(-2, 2, 10)  # z轴数据范围
x_mesh, y_mesh, z_mesh = np.meshgrid(x, y, z)  # 创建网格
u = np.sin(x_mesh) * np.cos(y_mesh) * np.cos(z_mesh)  # x方向分量
v = -np.cos(x_mesh) * np.sin(y_mesh) * np.cos(z_mesh)  # y方向分量
w = np.sqrt(2.0 / 3.0) * np.cos(x_mesh) * np.cos(y_mesh) * np.sin(z_mesh)  # z方向分量

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

# 绘制3D向量场图
ax.quiver(x_mesh, y_mesh, z_mesh, u, v, w)

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

# 显示图形
plt.show()

  • xyz数组分别表示向量场的x、y和z轴数据范围。通过使用np.linspace函数在指定范围内生成10个均匀分布的数据点。
  • 创建了一个3D图形对象,并将其添加到子图中。
  • 使用ax.quiver函数绘制了3D向量场图。
    •  x_meshy_meshz_meshuvw参数分别表示向量场的位置和对应的向量分量。
    • ax.quiver函数将根据提供的数据在每个位置绘制一个箭头表示向量的方向和强度。
  • 使用ax.set_xlabelax.set_ylabelax.set_zlabel函数设置了坐标轴的标签。
  • 运行示例代码后,将看到一个3D向量场图,其中箭头的位置和方向由提供的向量数据确定。

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

【深度学习】 Python 和 NumPy 系列教程(二十):Matplotlib详解:2、3d绘图类型(6)3D向量场图(3D Vector Field Plot) 的相关文章

随机推荐

  • 【无标题】力扣链表总结

    k个一组反转链表 25 前置知识1 2 反转整个链表 反转以 a 为头结点的链表 ListNode reverse ListNode a ListNode pre cur nxt pre null cur a nxt a while cur
  • 1.网络工程基础知识

    目录 1 1 网络工程的定义 1 可以通过以下几个方面加强对工程的了解 2 网络工程属于IT集成工程 1 2 网络工程实施原则 1 从网络整体性能上考虑 IT工程实施需要遵守以下原则 2 从企业成本考虑 IT工程实施则需要遵守以下一些原则
  • Windows下自定义文件类型如何双击打开,如何双击文件后都在一个实例中打开

    1 要实现文件双击打开 需要在注册表中将文件类型与要打开文件的程序相关联 在HKEY CURRENT USER Software Classes 或者 HKEY LOCAL MACHINE Software Classes 下创建 xxxx
  • 【贪心算法】最优服务次序问题

    算法实现题 4 6 最优服务次序问题 设有n个顾客同时等待一项服务 顾客i需要的服务时间为ti 应如何安排n个顾客的服务次序才能使平均等待时间达到最小 平均等待时间是n个顾客等待直到完成服务的时间总和除以n 对于给定的n个顾客需要的服务时间
  • gp 索引列表查询,表字段类型,字段注释查询

    所有索引列表 SELECT n nspname as Schema c relname as Name c2 relname as Table FROM pg catalog pg class c JOIN pg catalog pg ro
  • 解决v-for轮播图中图片无法显示

    v fo中src拿不到img的地址 图片无法显示 view可以打印出list data中的img值 说明数组没问题 已经拿到图片值 将src直接赋值地址 有图片显示 那么就是src没有拿到图片地址 网页元素检查中也发现 这里的图片img中没
  • 无盘服务器2018,2018无盘服务器配置

    2018无盘服务器配置 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 源端服务器数据收集声明 源端服务器上安装和配置完迁
  • Nerd Font 字体安装

    一 Nerd Font 是什么 Nerd Font 是为开发人员准备的 具有大量字形 图标 的字体 特别是从流行的 标志性字体 中添加大量额外的字形 如Font Awesome Devicons Octicons等 二 安装步骤 1 克隆仓
  • React 下 message组件属性设置

    式子 message info content React ReactNode duration number gt void onClose configonClose 例子 message info 提示内容 自动关闭的延时 单位秒 设
  • MATLAB实现PSO-DBN算法优化深度置信网络的多输入单输出回归预测

    MATLAB实现PSO DBN算法优化深度置信网络的多输入单输出回归预测 随着数据分析和机器学习技术的不断发展 深度学习作为一种强大的分析工具广泛应用于各个领域 在时间序列预测领域中 深度置信网络 Deep Belief Network D
  • c/c++基础(二十三) GDB调试入门

    用GDB调试程序 GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具 或许 各位比较喜欢那种图形界面方式的 像VC BCB等IDE的调试 但如果你是在UNIX平台下做软件 你会发现GDB这个调试工具有比VC BCB的
  • Testing ovn manually based on LXD (by quqi99)

    作者 张华 发表于 2022 05 27 版权声明 可以任意转载 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 准备两个LXD容器 lxc list NAME STATE IPV4 IPV6 TYPE SNAPSHOTS
  • 通过 Git 将代码提交到 GitHub

    通过 Git 将代码提交到 GitHub 文章目录 通过 Git 将代码提交到 GitHub 第一种 本地没有 Git 仓库 clone GitHub 上已有的仓库 第二种 将本地普通仓库变成 Git 仓库 并推送到 GitHub 第三种
  • Win7 计算机中丢失api-ms-win-core-path-

    背景 win7安装软件时提示 无法启动此程序 因为计算机中丢失api ms win core path 1 1 0 dll 问题原因 缺少api ms win core path 1 1 0 dll 解决方式 下载dll并放到指定路径 下载
  • 第十二章 演员评论家(Actor-Critic)-强化学习理论学习与代码实现(强化学习导论第二版)

    获取更多资讯 赶快关注上面的公众号吧 强化学习系列 第一章 强化学习及OpenAI Gym介绍 强化学习理论学习与代码实现 强化学习导论第二版 第二章 马尔科夫决策过程和贝尔曼等式 强化学习理论学习与代码实现 强化学习导论第二版 第三章 动
  • asp 打开服务器文件夹,什么是ASP?如何打开ASP文件

    ASP是基于WEB的一种编程技术 可以说是CGI的一种 它可以完成以往CGI程序的所有功能 如计数器 留言簿 公告板 聊天室等等 ASP可以轻松地实现对页面内容的动态控制 根据不同的浏览者 显示不同的页面内容 而浏览者一点觉察不出来 就像为
  • ROS配置DMZ?防火墙教程-ros配置DMZ

    简单的说 当我们内网服务器的所有端口都需要开放到外网的时候 我们需要使用DMZ功能 本文将演示如何将内网IP10 10 10 2的所有端口映射 开放到公网 DMZ是英文 demilitarized zone 的缩写 中文名称为 隔离区 也称
  • Android NestedScrollView嵌套RecyclerView滑动卡顿问题终极解决方案

    如果是如下的页面布局 NestedScrollView嵌套RecyclerView 随着recyclerVIew的加载 item越多 会发现滑动卡顿 大致解决方案有以下两种 方案1 取消recyclerVIew的滑动 mRecyclerVi
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 【深度学习】 Python 和 NumPy 系列教程(二十):Matplotlib详解:2、3d绘图类型(6)3D向量场图(3D Vector Field Plot)

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