【深度学习】 Python 和 NumPy 系列教程(十四):Matplotlib详解:1、2d绘图(下):箱线图、热力图、面积图、等高线图、极坐标图

2023-10-29

目录

 一、前言

二、实验环境

三、Matplotlib详解

 1、2d绘图类型

0. 设置中文字体

1-5. 折线图、散点图、柱状图、直方图、饼图

6. 箱线图(Box Plot)

7. 热力图(Heatmap)

8. 面积图(Area Plot)

9. 等高线图(Contour Plot)

10. 极坐标图(Polar 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绘图类型

0. 设置中文字体

import matplotlib

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

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

1-5. 折线图、散点图、柱状图、直方图、饼图

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

6. 箱线图(Box Plot)

        用于显示数据的离散程度和异常值

import matplotlib.pyplot as plt


data = [1, 1, 2, 3, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9]

# 绘制箱线图
plt.boxplot(data)

# 添加标题和标签
plt.title("箱线图示例")
plt.ylabel("数值")

# 显示图形
plt.show()

7. 热力图(Heatmap)

        用于显示数据的矩阵形式,颜色表示数值大小

import matplotlib.pyplot as plt
import numpy as np

data = np.random.rand(5, 5)

# 绘制热力图
plt.imshow(data, cmap='hot')

# 添加颜色条
plt.colorbar()

# 添加标题和标签
plt.title("热力图示例")
plt.xlabel("X轴")
plt.ylabel("Y轴")

# 显示图形
plt.show()

8. 面积图(Area Plot)

        用于显示随时间或其他变量的变化趋势,通过填充颜色来表示不同区域的数值

import matplotlib.pyplot as plt


x = [1, 2, 3, 4, 5]
y1 = [1, 3, 4, 2, 5]
y2 = [2, 4, 1, 3, 2]

# 绘制面积图
plt.fill_between(x, y1, alpha=0.5, label='区域1')
plt.fill_between(x, y2, alpha=0.5, label='区域2')

# 添加标题和标签
plt.title("面积图示例")
plt.xlabel("X轴")
plt.ylabel("Y轴")

# 添加图例
plt.legend()

# 显示图形
plt.show()

        其中alpha=0.5表示填充颜色的透明度

9. 等高线图(Contour Plot)

        用于显示二维数据的等高线图,其中不同高度的曲线表示不同数值

import numpy as np
import matplotlib.pyplot as plt

# 创建二维数组作为数据
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))

# 绘制等高线图
plt.contour(X, Y, Z)

# 添加标题和标签
plt.title("等高线图示例")
plt.xlabel("X轴")
plt.ylabel("Y轴")

# 显示图形
plt.show()
  • 创建了一个二维数组作为数据:通过使用np.linspace函数生成一系列均匀分布的数值,然后使用np.meshgrid函数将这些数值转换为网格状的坐标点。通过对坐标点进行某种运算,生成了对应的二维数据。
  • 使用plt.contour(X, Y, Z)绘制等高线图,其中XY表示坐标点的网格,Z表示对应位置的数据值。

10. 极坐标图(Polar Plot)

        使用极坐标而不是直角坐标来显示数据,常用于显示周期性数据

import numpy as np
import matplotlib.pyplot as plt

# 创建角度数据和半径数据
theta = np.linspace(0, 2*np.pi, 100)
r = np.sin(3*theta)

# 绘制极坐标图
plt.polar(theta, r)

# 添加标题
plt.title("极坐标图示例")

# 显示图形
plt.show()
  • 创建角度数据和半径数据:通过使用np.linspace函数生成一系列均匀分布的角度值,并使用某种函数关系生成对应的半径值。
  • 使用plt.polar(theta, r)绘制极坐标图,其中theta表示角度值,r表示对应角度的半径值。


 

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

【深度学习】 Python 和 NumPy 系列教程(十四):Matplotlib详解:1、2d绘图(下):箱线图、热力图、面积图、等高线图、极坐标图 的相关文章

随机推荐

  • 李宏毅深度学习-回归

    目录 1 梯度下降 2 bias和variance 1 梯度下降 利用梯度下降寻找最优解是 如果在该点的梯度为负 向下 则需要增加参数大小 如果梯度为正 向上 则需要减小参数大小 计算时 减去学习率 偏导表示和梯度方向反向 即负的就要增加
  • Handler消息传递机制(一)

    1 定义 一套 Android 消息传递机制 2 作用 在多线程的应用场景中 将工作线程中需更新UI的操作信息 传递到 UI主线程 从而实现 工作线程对UI的更新处理 最终实现异步消息的处理 3 意义 问 为什么要用 Handler消息传递
  • python中保存np.save出错

    python中保存np save出错 代码如下 求大神解释一下
  • HTTP(S)协议详解

    1 什么是协议 协议 网络协议的简称 网络协议是通信计算机双方必须共同遵从的一组约定 如怎么样建立连接 怎么样互相识别等 只有遵守这个约定 计算机之间才能相互通信交流 粗俗理解协议就是 比如你的电脑和我的电脑要通信 我们之间的交流为什么互相
  • Mysql8的备份脚本 ,基于xtrabackup8.0

    Mysql8的备份脚本 基于xtrabackup8 0 注意 xtrabackup8 0与mysql8直接的版本依赖强 安装xtra后可查看支持的Mysql8版本 xtrabackup8 下载页面 https centos pkgs org
  • 后台管理系统布局以及跳转,点击菜单局部刷新,右侧显示对应界面完整版

    源码地址 https gitee com nggLee java funny 1 进入站长之家https sc chinaz com 2 搜索后台管理模版 下载一个 本次使用的模版 https sc chinaz com moban 160
  • CONST

    定义 编辑 const修饰的数据类型是指常类型 常类型的变量或对象的值是不能被更新的 目的 编辑 const 推出的初始目的 正是为了取代预编译指令 消除它的缺点 同时继承它的优点 主要作用 编辑 1 可以定义const常量 具有不可变性
  • 如何在一个中文大模型上,加入招投标字段标注的数据,搭建一个招投标字段解析的Transformer模型?

    ChatGPT方案1 在一个中文大模型上加入招投标字段标注的数据 并搭建招投标字段解析的Transformer模型可以通过以下步骤实现 收集并标注招投标相关的数据 可以使用现有的数据集 也可以通过爬虫技术获取相关数据 然后进行人工标注 标注
  • Ubuntu下安装和管理不同版本CMake,根据软件安装的需要选用不同版本的CMake

    0 Foreword 在安装VTK Visualization Toolkit 时发现需要用3 12版本以上的CMake才行 但是系统带的是3 10版本的 这时可以有两个方法 最简单粗暴就是把系统原本的CMake覆盖了 重新装新版 其次是麻
  • 快速了解时间敏感网络(TSN)_Part1

    在过去的几年间 以太网凭借开放的协议 良好的扩展性以及较高的带宽等优势为自己在车载领域赢得了一席之地 随着车载应用范围的扩大 也有越来越多的以太网技术涌现出来 今天我们就来聊一聊时间敏感网络 TSN 让大家快速了解这一技术 话不多说 大家坐
  • IDEA 快速生成项目结构的文档树形式

    参考文献 taodudu idea快速生成项目结构图 参考日期 2023 05 17 需求 在写文档的时候 想把项目结构输出成文档树的形式 实现 在 IDEA 中 可以点击下方 Terminal 按钮或 Alt F12 打开终端 同理 在命
  • 旋转矩阵 推导

    旋转变换 一 旋转矩阵 1 简介 计算机图形学中的应用非常广泛的变换是一种称为仿射变换的特殊变换 在仿射变换中的基本变换包括平移 旋转 缩放 剪切这几种 本文以及接下来的几篇文章重点介绍一下关于旋转的变换 包括二维旋转变换 三维旋转变换以及
  • vue3+vite+TS如何实现水印

    水印是通过canvas画图来实现的 首先需要创建一个ts的文件夹 之后在APP vue中全局加入水印 这样就可使全部页面都有水印 如果想要某个页面实现水印只需要单独写在页面即可 这里的判断主要是判断是否登录 登陆时再加上水印 如若不需要判断
  • 无需MS Office创建Excel!再C ++中以编程方式在Excel电子表格中创建图表

    图表是简洁显示数据的绝佳工具 此外 它们以可视方式表示数据 从而更易于使用大量数据 在需要显示数据 例如每月预算比较或产品采用率 的情况下 图表可能会有所帮助 有鉴于此 本文将教您如何使用C 在Excel文件中创建图表 使用C 在Excel
  • 多项目管理五大特点

    多项目管理建立在一般项目管理的基础上 所以它具有项目管理的所有特点 同时 多项目管理无论在内涵还是外延方面 都处在不断完善的发展中 具有区别于一般的单项目管理的特点 战略性 单项目管理注重项目本身的计划 执行及控制 并确保提交合格的最终项目
  • [python] ThreadPoolExecutor线程池

    初识 Python中已经有了threading模块 为什么还需要线程池呢 线程池又是什么东西呢 在介绍线程同步的信号量机制的时候 举得例子是爬虫的例子 需要控制同时爬取的线程数 例子中创建了20个线程 而同时只允许3个线程在运行 但是20个
  • LTS-局部时间步,自动调节步长技术

    在查看interFoam求解器时 会发现其中引入了LTS if LTS include setRDeltaT H 那么它的含义和功能是什么呢 LTS locall time step 是一种局部时间步求解器 该求解器建立于局部时间步下 它会
  • 小米官网(前一部分)html

  • QMessageBox 消息框

    QMessageBox QMessageBox是Qt框架提供的用于弹出消息对话框的类 它可以用于显示一些提示信息 警告信息 错误信息等 QMessageBox的使用非常简单 只需要调用静态方法即可弹出对话框 QMessageBox info
  • 【深度学习】 Python 和 NumPy 系列教程(十四):Matplotlib详解:1、2d绘图(下):箱线图、热力图、面积图、等高线图、极坐标图

    目录 一 前言 二 实验环境 三 Matplotlib详解 1 2d绘图类型 0 设置中文字体 1 5 折线图 散点图 柱状图 直方图 饼图 6 箱线图 Box Plot 7 热力图 Heatmap 8 面积图 Area Plot 9 等高