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

news2024/12/23 14:16:40

目录

 一、前言

二、实验环境

三、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:创建笔记本、典型工作流程

二、实验环境

matplotlib3.5.3
numpy1.21.6
python3.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表示对应角度的半径值。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1010154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zabbix“专家坐诊”第203期问答汇总

问题一 Q:用的模板,没用创建动作,但是触发器触发了我钉钉直接被通知了,怎么取消模板自带的动作? A:没有动作是不会触发事件告警的 ,确定是从这个平台推出的钉钉消息?或者看下zabbix…

【操作系统】进程的通信IPC

进程通信是指进程之间的信息交换。 低级通信方式:PV操作 高级通信方式:1.共享存储2.消息传递3.管道通信 共享存储 低级数据结构共享,高级存储区共享。 对共享空间进行读写操作时,需要用到互斥工具。 消息传递 利用发送消息和…

Leetcode算法入门与数组丨3. 数组基础

文章目录 前言1 数组简介2 数组的基本操作2.1 访问元素2.2 查找元素2.3 插入元素2.4 改变元素2.5 删除元素 3 总结task03task04 前言 Datawhale组队学习丨9月Leetcode算法入门与数组丨打卡笔记 这篇博客是一个 入门型 的文章,主要是自己学习的一个记录。 内容会参…

Matlab图像处理-三原色

三原色 根据详细的实验结果,人眼中负责颜色感知的细胞中约有65%对红光敏感,33%对绿光敏感,只有2%对蓝光敏感。正是人眼的这些吸收特性决定了所看到的彩色是一般所谓的原色红(R)、绿(G)和蓝&…

十四、流式编程(1)

本章概要 流支持流创建 随机数流int 类型的范围generate()iterate()流的建造者模式Arrays正则表达式 集合优化了对象的存储,而流(Streams)则是关于一组组对象的处理。 流(Streams)是与任何特定存储机制无关的元素序列…

【2023】windows下安装libevent

Windows安装libevent 1.安装Visual Studio2.安装openssl第一种安装方式:[简便安装](https://slproweb.com/products/Win32OpenSSL.html)第二种:自己编译openssl 3.libevent下载libevent修改文件1.下边三个文件加入宏定义 #define _WIN32_WINNT 0x05002.修…

基于卷积神经网络的手写字体识别(详细笔记)

主要参考博客: 1、 基于卷积神经网络的手写数字识别(附数据集完整代码操作说明) 2、用PyTorch实现MNIST手写数字识别(最新,非常详细) 基于卷积神经网络的手写字体识别——目录 1 前言1.1 实现效果1.2 学习背…

国产洗碗机打响超越战

“征服世界的将是这样一些人:开始的时候,他们试图找到梦想中的乐园。最终,当他们无法找到时,就亲自创造了它。”诺贝尔文学奖获得者萧伯纳的这句话,适用于许多中国行业和企业,洗碗机就是其中之一。 对热爱…

十进制小数转换为单双精度浮点数方法

1 将十进制小数转换为单精度浮点数的方法如下: 2. 将十进制小数转换为双精度浮点数的方法如下: 和单精度浮点值转换一样

前端Layui框架介绍

当涉及到前端UI框架时,Layui(简称layui)是一个备受欢迎的框架之一。在这篇博客中,我们将深入了解layui,包括其市场占有率、开发语言、使用场景、框架特点以及一些使用案例。 1. 市场占有率 Layui 是一款流行的前端UI框…

(纯干货建议收藏)大型字符串模拟-超强超全函数技巧总结

这篇文章将会总结一些处理字符串、进制转换等等的常见的、非常有用的技巧和函数。后续会随时更新本文章,希望大家收藏、留言,一起学习进步! 对于特别简单的函数,就不写函数的详细原型啦! 具体包含四部分,…

Xilinx FPGA未使用管脚上下拉状态配置(ISE和Vivado环境)

文章目录 ISE开发环境Vivado开发环境方式1:XDC文件约束方式2:生成选项配置 ISE开发环境 ISE开发环境,可在如下Bit流文件生成选项中配置。 右键点击Generate Programming File,选择Process Properties, 在弹出的窗口选…

《程序员职场工具库》如何优化你的工作 —— PDCA 循环

PDCA 循环简介 PDCA 循环是一种以持续改进为核心思想的管理方法,在全球各个领域得到广泛的应用。它还有好几个别称,叫“质量环”,也叫“戴明环”,也有叫“持续改进螺旋”。 PDCA 循环由四个步骤组成: 计划&#xff…

基于SSM+Vue的中国咖啡文化宣传网站

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用vUE技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

vector模拟实现——关于模拟中的易错点

前言 vector 本质上类似数组,也可以理解为一种泛型的 string。string 只能存储 char 类型,但是 vector 支持各种内置类型和自定义类型。本次将围绕模拟实现 vector 中遇到的问题进行分析。 文章目录 前言一、确定思路二、实现过程2.1 查阅文档2.2 验证…

4-3 nn.functional和nn.Module

一,nn.functional 和 nn.Module 前面我们介绍了Pytorch的张量的结构操作和数学运算中的一些常用API。利用这些张量的API我们可以构建出神经网络相关的组件(如激活函数,模型层,损失函数)。 其实:Pytorch和神经网络相关的功能组件大…

中小企业数字化转型难?为什么不试试“企业级”无代码平台

首先,让我们思考一下,中小企业为什么要进行数字化转型?随着全球经济的数字化趋势日益明显,中小企业作为经济的重要组成部分,其数字化转型已成为推动经济高质量发展的关键。数字技术可以帮助中小企业提高生产效率、降低…

ctfshow-web-红包题 辟邪剑谱

0x00 前言 CTF 加解密合集CTF Web合集网络安全知识库溯源相关 文中工具皆可关注 皓月当空w 公众号 发送关键字 工具 获取 0x01 题目 0x02 Write Up 这道题主要是考察mysql查询绕过的问题。 首先访问后看到是一个登录页面,测试注册等无果 扫描目录,发…

Packet Tracer的使用介绍

直接访问 Packet Tracer 的帮助页面、教程视频和在线资源对于了解该软件会更加方便。 单击菜单工具栏右上角的问号图标。单击“帮助”菜单,然后选择“内容”。 b. 通过单击“帮助”>“教程”来访问 Packet Tracer 的教程视频。 菜单栏:提供文件、编辑…

SpringBoot运行原理

目录 SpringBootApplication ComponentScan SpringBootConfiguration EnableAutoConfiguration 结论 SpringbootApplication(主入口) SpringBootApplication public class SpringbootConfigApplication {public static void main(String[] args) {…