【深度学习】 Python 和 NumPy 系列教程(十五):Matplotlib详解:2、3d绘图类型(1):线框图(Wireframe Plot)

2023-11-15

目录

 一、前言

二、实验环境

三、Matplotlib详解

 1、2d绘图类型

2、3d绘图类型

0. 设置中文字体

1. 线框图(Wireframe 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博客icon-default.png?t=N7T8https://blog.csdn.net/m0_63834988/article/details/132872575?spm=1001.2014.3001.5501

2d绘图(下):箱线图、热力图、面积图、等高线图、极坐标图_QomolangmaH的博客-CSDN博客icon-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. 线框图(Wireframe Plot)

        用于可视化三维数据,通过绘制连接数据点的线来显示数据的分布和形状。

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

# 生成数据
x = np.linspace(-5, 5, 50)  # x轴坐标
y = np.linspace(-5, 5, 50)  # y轴坐标
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))  # z轴坐标,这里使用sin函数生成一个曲面

# 创建一个三维坐标系
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 绘制线框图
ax.plot_wireframe(X, Y, Z)

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

# 显示图形
plt.show()
  • 生成了x轴和y轴的坐标点
  • 使用np.meshgrid函数生成网格点坐标,再根据坐标计算出对应的z轴坐标。
  • 创建了一个三维坐标系,并使用ax.plot_wireframe函数绘制线框图,该函数接受三个参数:X、Y和Z,分别表示网格点的x、y、z坐标。
  • 我们设置了坐标轴的标签,并使用plt.show()显示图形。

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

【深度学习】 Python 和 NumPy 系列教程(十五):Matplotlib详解:2、3d绘图类型(1):线框图(Wireframe Plot) 的相关文章

随机推荐

  • VSCode无法登录leetcode,[ERROR] invalid password?

    VSCode无法登录leetcode 我使用的是 leetcode cn com 账户 选择的是第三方登录 github账号 v16 13 0 Active Name Version Desc solution discuss 2019 0
  • c语言常用算法归纳,C语言常用算法

    一 计数 求和 求阶乘等简单算法 此类问题都要使用循环 要注意根据问题确定循环变量的初值 终值或结束条件 更要注意用来表示计数 和 阶乘的变量的初值 例 用随机函数产生100个 0 99 范围内的随机整数 统计个位上的数字分别为1 2 3
  • pycharm配置监听端口0.0.0.0后不能在浏览器上通过本地地址访问

    解决方案 https segmentfault com q 1010000007625566参考方案 在settings py的ALLOWED HOSTS中添加 127 0 0 1 192 168 0 128 localhost 中间是本地
  • Jquery Ajax前后端交互技术

    Jquery Ajax前后端交互技术 1 什么是Ajax Ajax是一种异步 无刷新技术 什么是异步 1 现在我们大部分的请求都是同步 我必须接受你的请求给我返回结果了 我才能进行下一步操作 2 异步就是 无需返回服务器的结果 就可以继续做
  • 操作系统复习指南

    文章目录 前言 一 中断 1 中断的分类 2 硬中断和软中断 二 系统调用 1 什么是系统调用 三 进程 1 什么是进程 2 进程的组织方式 3 进程的特征 4 进程的几种状态及其转换 5 进程间的通信 6 进程的调度 7 作业调度算法 8
  • ua获取手机型号_如何根据 UA 判断手机型号和厂家?

    开门见山 拿下面2个 ua 来举例 Mozilla 5 0 Linux U Android 8 1 0 zh cn PBEM00 Build OPM1 171019 026 AppleWebKit 537 36 KHTML like Gec
  • idea中yml配置文件编写规范

    yaml文件实际是用YAML语言编写的 YAML简述 如下 1 语法特点 大小写敏感 通过缩进表示层级关系 禁止使用tab缩进 只能使用空格键 缩进的空格数据不重要 只要相同层级左对齐即可 使用 表示注释 2 yaml支持的数据结构有三种
  • 11,输出保留3位小数的浮点数

    读入一个浮点数 保留 3 位小数输出这个浮点数 输入格式 只有一行 一个浮点数 x 105 x 105 输出格式 也只有一行 保留 3 位小数的浮点数 输出时每行末尾的多余空格 不影响答案正确性 样例输入 12 34521 样例输出 12
  • MySQL几个问题:Column 'XXXX' in where clause is ambiguous,去除重复项,mybatis报错

    最近工作西街口 遇到MySQL Mybatis相关的几个问题 大概讲一下问题发生情况 解决办法和原因 一 Column create time in where clause is ambiguous 问题 这个不管你是在IDEA的控制台看
  • git查看远程仓库(git remote)

    实例 描述 git remote v 查看远程仓库地址 git remote show origin 查看远程仓库信息
  • 15. Canvas制作汽车油耗仪表盘

    1 说明 本篇文章在14 利用Canvas组件制作时钟的基础上进行一些更改 想查看全面的代码可以点击链接查看即可 效果展示 2 整体代码 import QtQuick 2 15 import QtQuick Controls 2 15 It
  • 深度学习——时间序列模型评价指标总结

    大Y老师 小X 你做的这个时间序列模型用什么指标评价啊 小X 直接把这篇甩给老师 老师您看哪个指标顺眼 就选哪个指标 最近在实现基于深度学习的时间序列模型时 需要对模型进行评价 总结了一些常用的和不常用的评价指标 还有相关概念的辨析 上面是
  • 谷粒学院——Day09【整合阿里云视频点播】

    作者主页 Java技术一点通的博客 个人介绍 大家好 我是Java技术一点通 记得关注 点赞 收藏 评论 认真学习 共同进步 视频点播简介 一 阿里云视频点播技术能力盘点 视频点播 ApsaraVideo for VoD 是集音视频采集 编
  • 图计算:社区发现算法

    一 定义什么是社区 社区是一种局部性结构 该局部性结构内部连接紧密 而不同的局部性结构之间连接稀疏 这种局部性结构是社区 主要应用 好友推荐 广告推送 二 如何评价一个社区的分类好坏的情况 用Modurity衡量 三 社区发现算法 算法1
  • ESP8266开发板+mysql数据库+DHT11

    wemos D1 wifi ESP8266开发板连接mysql wemos D1 wifi ESP8266开发板是一款基于esp8266的开发板 使用这个开发板可以很方便的连接wifi 同时这个开发板有很多IO口供我们使用 这个开发板的可以
  • WPS Office 2019政府定制版本 2019.1.15版

    1 广东省 广东省政府机关单位 http wpspro support wps cn gov guangdong WPS Office 2016 专用版 10 8 0 6423 潮州市党政机关单位 http wpspro support w
  • 基于FPGA的频率计设计

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 频率计是什么 二 使用步骤 1 测量方法 2 测周方法 3 系统框图 总结 前言 所谓 频率 就是周期性信号在单位时间 秒 内变化的次数 一 频率计是什么
  • 线性代数的几何意义(一)——线性代数的意义

    线性代数的几何意义 一 一 线性 代数 的意义 何为 代数 代数 一词的英文是Algebra 源于阿拉伯语 其本意是 结合在一起 就是说代数的功能就是把许多看似不相关的事物 结合在一起 也就是进行抽象 抽象的目的不是故弄玄虚 而是为了更好的
  • zabbix配置钉钉告警、和故障自愈、监控java

    文章目录 1 配置钉钉告警 server 配置 web界面创建媒介 给用户添加媒介 测试告警 实现故障自愈功能 监控Java zabbix server 安装java gateway 配置 Zabbix Server 支持 Java gat
  • 【深度学习】 Python 和 NumPy 系列教程(十五):Matplotlib详解:2、3d绘图类型(1):线框图(Wireframe Plot)

    目录 一 前言 二 实验环境 三 Matplotlib详解 1 2d绘图类型 2 3d绘图类型 0 设置中文字体 1 线框图 Wireframe Plot 一 前言 Python是一种高级编程语言 由Guido van Rossum于199