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

2023-11-03

目录

 一、前言

二、实验环境

三、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绘图(下):箱线图、热力图、面积图、等高线图、极坐标图 的相关文章

随机推荐

  • linux启动生成文件,Linux重新生成启动引导文件

    1 重新生成grub2的配置文件 grub mkconfig o boot grub grub cfg 2 将grub2安装到硬盘引导扇区 grub install root directory dev sda 3 使用密码保护grub2
  • Unicode编码详解

    Unicode定义 Unicode 统一码 万国码 单一码 是计算机科学领域里的一项业界标准 包括字符集 编码方案等 Unicode 是为了解决传统的字符编码方案的局限而产生的 它为每种语言中的每个字符设定了统一并且唯一的二进制编码 以满足
  • Java svg图片转png图片

    Java svg图片转png图片 比较简单 主要使用batik包里的batik transcoder模块 网上的教程引的包太多了 只是转化的话 这个包就够了 你们引用的时候 记得查一下version 之前我引用的包太老了 项目就起不来了 p
  • Windows下端口号被占用排查方法

    1 WIN R CMD进入命令行 本示例端口号为8081 实操根据自己的端口号来 查找哪个进程号 PID 占用了本端口号 netstat ano findstr 8081 通过PID查到对应占用程序 tasklist findstr 142
  • IP:网际协议

    本文是为了记录学习过程中的知识点所写 用于对自己的理解做一个记录 4位版本 目前的版本号为4 因此IP也称为IPv4 4位首部长度 首部占32bit 4字节 的数目 4bit最大值为15 也就是说最多为480bit 即60字节 包括选项 也
  • Axios----web数据交互方式

    一 VUE生命周期 Created gt Vue 对象创建完成触发的函数 二 缩写 v bind 给属性赋值 缩写为 v on 事件绑定 缩写为 缩写 三 计算属性 computed中定义 以匿名函数形式实现数据的操作 计算 返回的值为计算
  • Docker容器数据卷详解

    文章目录 1 数据卷介绍 2 简单使用 3 MySQL容器建立数据卷同步数据 4 常用命令 5 具名挂载和匿名挂载 5 1 匿名挂载 5 2 具名挂载 6 Dockerfile中设置数据卷 7 容器数据卷 1 数据卷介绍 Docker将运用
  • 详解MOSFET详解MOSFET与IGBT的本质区别与IGBT的本质区别

    http www dzsc com data 2017 11 27 113799 html
  • mysql中if()函数使用

    在mysql中if 函数的用法类似于java中的三目表达式 其用处也比较多 具体语法如下 IF expr1 expr2 expr3 如果expr1的值为true 则返回expr2的值 如果expr1的值为false 则返回expr3的值 其
  • (十)蓝牙MAC地址

    BLE MAC地址分类 1 BLE设备可以使用公共地址和随机地址 至少使用其中一种 也可以有两种 地址的长度是6个字节 严格来说广播中不用包含地址 默认已经有了 2 公共地址 从IEEE购买 保证唯一性 3 随机静态地址 自己定义 上电初始
  • 计算机网络不完全整理(下)--春招实习

    HTTP 从输入url到显示主页的过程 参考 segmentfault com a 119000000 DNS解析 网址到ip地址的转换 TCP连接 HTTP协议使用TCP作为传输层协议 发送HTTP请求 服务器处理请求并返回HTTP报文
  • Flink Watermark分配策略

    Flink Watermark分配策略 WaterMark是Flink为了处理Event Time窗口计算提出的一种机制 本质上是一种时间戳 主要用来处理乱序数据或者延迟数据的 这里通常watermark机制结合window来实现 wate
  • Spring 单例 bean 的线程安全问题

    首先解释一下什么是单例 bean 单例的意思就是说在 Spring IoC 容器中只会存在一个 bean 的实例 无论一次调用还是多次调用 始终指向的都是同一个 bean 对象 用代码来解释单例 bean public class User
  • Cisco L2TP 配置实例

    1 在企业端配置L2TP ENT LNS config username cisco password 0 cisco ENT LNS config vpdn enable ENT LNS config vpdn group myl2tp
  • 创建小程序WePY项目过程报错指南

    笔者在第一次创建小程序 WePY 项目的时候 遇到了各种各样的问题 也在网上搜索了一番 终于也还是把 WePY 项目创建起来了 为了日后遇到问题更快的处理 笔者也把在创建过程的遇到的问题记录了下来 如下 1 在 WebStorm 中创建一个
  • 用Python实现的这五个小游戏,你真的学会了嘛?

    相关文件 源码分享 问题解答 关注小编 私信小编领取哟 当然别忘了一件三连哟 对了大家可以关注小编的公众号哟 有很多资源可以领取的哟 Python日志 游戏名称 五子棋 雷霆战机 贪吃蛇 坦克大战 俄罗斯方块 开发环境 Python版本 3
  • 区块链DAPP开发入门课程(PHP版)

    1 前言及环境部署 1 1 课程说明 为什么有这个课程 入门区块链开发已有些时日 走过的坑实在是太多了 对于像我这种从事互联网软件开发多事的老兵来说 上手都有些吃力 可想而知对于新手来说就更难了 尤其是完全靠自学又没有人指导的情况 可能一个
  • navicat导入sql文件_中级数据分析-SQL入门

    一 如何快速学会SQL 黄金圈原则 1 为什么 目的 很多公司数据存放在数据库当中 SQL是操作数据库的语言 所以目前SQL是数据分析岗位几乎必备的技能 也是面试当中必须考察的能力 2 如何做 方法 入门 什么是数据库 sql 表和数据的新
  • c++日志库实战——spdlog,是不是感觉log4cxx有点笨重,不妨试一试spdlog

    c 日志库实战 spdlog 是不是感觉log4cxx有点笨重 不妨试一试spdlog 背景 更新记录 spdlog是什么 spdlog快速入门 编译 CMake手动方式 Vcpkg全自动方式 推荐 原生用法 实战代码 SpdlogWarp
  • 【深度学习】 Python 和 NumPy 系列教程(十四):Matplotlib详解:1、2d绘图(下):箱线图、热力图、面积图、等高线图、极坐标图

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