机器学习 | matplotlib超详细教程

news2025/1/9 14:32:42

在这里插入图片描述

欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。


matplotlib

      • 数据可视化
      • 什么是matplotlib
      • 安装matplotlib
      • matplotlib.pyplot API介绍
      • matplotlib绘图示例
      • 图书推荐


专栏:《机器学习》


数据可视化

如果将文本数据和图表数据放在一起,人类的思维模式可能更适合于理解图表数据,因为图表数据更加直观、形象。使用图表来表示数据的方法就叫做数据可视化。可视化是在整个数据挖掘的关键辅助工具,可以帮助我们清晰的理解数据,从而调整我们的分析方法。通过可视化,能将数据更直观的呈现出来,使数据更加客观、更具说服力。
常用的数据可视化图表主要有以下五种:
在这里插入图片描述

什么是matplotlib

Matplotlib 是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy ndarray 数组(NumPy 是 Python 科学计算的软件包,ndarray 则是 NumPy 提供的一种数组结构)来绘制 2D 图像。
matplotlib 是 Python 中类似于 matlab的绘图工具,是一个常用的 2D 绘图库,当然它也提供了3D绘图接口。如果有matlab的使用经验,学习matplotlib还是很快的。matplotlib 提供了一套API来支持面向对象绘图,配合 Python GUI 工具包(比如 PyQt,WxPython、Tkinter)在应用程序中嵌入图形。与此同时,matplotlib也支持以脚本的形式在 Python、IPython Shell、JupyterNotebook 以及 Web 应用的服务器中使用,非常方便。作为Python 中最受欢迎的数据可视化软件包之一,matplotlib支持跨平台运行,它通常与NumPy、Pandas一起使用,是数据分析中不可或缺的重要工具之一。
①脚本层scripting
脚本层是matplotlib 结构中的最顶层。我们编写的绘图代码大部分代码都在该层运行,它的主要工作是负责生成图形与坐标系。
②美工层artist
美工层是结构中的第二层,它提供了绘制图形的元素时的给各种功能,例如,绘制标题、轴标签、坐标刻度等。
③后端层backend
后端层是 matplotlib 最底层,它定义了三个基本类,首先是 FigureCanvas(图层画布类),它提供了绘图所需的画布,其次是 Renderer(绘图操作类),它提供了在画布上进行绘图的各种方法,最后是 Event(事件处理类),它提供了用来处理鼠标和键盘事件的方法。
Matplotlib的图像组成如下图所示
在这里插入图片描述

  • Figure:指整个图形,可以把它理解成一张画布,它包括了所有的元素,比如标题、轴线等;
  • Axes:绘制 2D 图像的实际区域,也称为轴域区,或者绘图区;
  • Axis:指坐标系中的垂直轴与水平轴,包含轴的长度大小、轴标签(指 x 轴,y轴)和刻度标签;
  • Artist:在画布上看到的所有元素都属于 Artist 对象,比如文本对象(title、xlabel、ylabel)、Line2D 对象(用于绘制2D图像)等。

安装matplotlib

matplotlib是专门用于开发2D图表(包括3D图表),以渐进、交互式方式实现数据可视化。如果你用过matlab的话,可以简单理解为和matlab有类似的功能。
安装matplotlib,直接在命令行输入(在cmd命令行输入py -0p可查看python解释器安装路径,如果pycharm提示找不到python.exe可能就是解释器路径错误)

pip3 install matplotlib

安装后,便可以在jupyter notebook或者pycharm等其他环境使用进行数据可视化
在这里插入图片描述

在pyharm中使用matplotlib模块的时候,可能会出现报错
在这里插入图片描述

解决方法如下
首先点击“文件-设置”
在这里插入图片描述

进入后,选择“项目-project interpreter”,点击加号
在这里插入图片描述

在弹框中搜索matplotlib,并安装即可
在这里插入图片描述

至此,安装成功。
在这里插入图片描述

另一个比较好的安装方法是通过下载 Python 的 Anaconda 发行版,Anaconda 是一个开源的 Python 发行版本,其包含了 Python、NumPy、Matplotlib 等180多个科学包及其依赖项。
首先,进入 Anaconda 的官方网站点击直达下载页面,然后单击“Download”按钮,如下图所示:
在这里插入图片描述

根据自己的Python解释器的版本下载相应版本即可。并且Anconda 中提供了一个交互式笔记本 Jupyter。

matplotlib.pyplot API介绍

Matplotlib 中的 pyplot 模块是一个类似命令风格的函数集合,和 MATLAB 非常相似。pyplot 模块提供了可以用来绘图的各种函数,比如创建一个画布,在画布中创建一个绘图区域,或是在绘图区域添加一些线、标签等。主要如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

matplotlib绘图示例


import matplotlib.pyplot as plt
import random

# 通过折线图展示温度变化

# 准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]

# 创建画布
plt.figure(figsize=(20, 8), dpi=80)

# 构造x轴刻度标签
x_ticks_label = ["11:{}".format(i) for i in x]
# 构造y轴刻度
y_ticks = range(40)

# 修改x,y轴坐标的刻度显示
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])

# 添加网格显示
plt.grid(True, linestyle='--', alpha=0.5)

# 添加x轴、y轴描述信息及标题
plt.xlabel("time")
plt.ylabel("temperature")
plt.title("Temperature variation chart", fontsize=20)

# 绘制折线图
plt.plot(x, y_shanghai)

# 保存图片到指定路径 plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。
# plt.savefig("test.png")

# 显示图像
plt.show()

在这里插入图片描述

我们也可以通过参数设置线的风格
在这里插入图片描述

图书推荐

在人工智能时代,如何尽快掌握人工智能的核心—深度学习呢?相信这是每个欲进入此领域的人面临的主要问题。目前,深度学习框架很多,如TensorFlow、PyTorch、Keras、FastAI、CNTK等。面对众多的深度学习框架,初学者应如何选择?哪个框架既易于上手,又在工业界有广泛应用?毫无疑问,PyTorch是不二之选。一方面,PyTorch天然与Python结合,大大降低了深度学习的门槛;另一方面,它的流行度仅次于TensorFlow,而且有赶超之势,但是上手难度却比TensorFlow低很多。如果你是一位初学者,建议你选择PyTorch,待有了一定的基础之后,可以学习其他框架,如TensorFlow、CNTK等。
下面推荐一本能够指导读者快速掌握PyTorch和深度学习的著作,从PyTorch的原理到应用,从深度学习到强化学习,该书提供了全栈解决方案。

书名:《Python深度学习:基于PyTorch 第2版》
作者:吴茂贵 郁明敏 杨本法 李涛 等著
出版社:机械工业出版社
在这里插入图片描述
🔥图书介绍
本书分为三部分,共19章,第一部分为PyTorch基础,第二部分为深度学习基本原理,第三部分是实战内容。
第一部分(第1~4章)为Python和PyTorch基础部分,也是本书的基础部分,为后续学习打下一个坚实基础。第1章介绍了PyTorch的基石NumPy;第2章介绍PyTorch基础;第3、4章分别介绍PyTorch构建神经网络工具箱和数据处理工具箱等内容。
第二部分(第5~10章)为机器学习、深度学习部分,这是本书核心部分。第5章为机器学习基础;第6章为视觉处理基础;第7章介绍自然语言处理基础;第8章介绍注意力机制,详解介绍Transformer架构;第9章介绍目标检测与语义分割;第10章介绍生成式深度学习相关内容,包括AE,VAE,GAN、CGAN等模型。
第三部分(第11~19章)为深度学习实战,也即前面两部分的具体应用部分。这部分在介绍相关原理、架构的基础上,用PyTorch具体实现的典型实例,最后介绍了强化学习、深度强化学习等内容。具体各章节内容为,第11章用PyTorch实现人脸检测和识别;第12章用PyTorch实现迁移学习、迁移学习结合数据增强等实例;第13章用PyTorch实现中英文互译;第14章介绍了基于Transformer架构的ViT进行图像分类;第15章为语义分割实例;第16章多个生成式网络实例;第17章介绍对抗攻击原理及PyTorch实现对抗攻击实例;第18、19章介绍了强化学习、深度强化学习等基础及多个强化学习实例。
更为重要的是,为了让本书通俗易懂,在内容安排和写作方式上也颇花了一番心思。内容选择上,广泛涉猎、重点突出、注重实战;内容安排上,实例切入、由浅入深、循序渐进;表达形式上,深度抽象、化繁为简、用图说话。

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


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

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

相关文章

Git的安装和环境变量的配置

目录 前言一、下载Git二、安装Git三、检查是否安装成功四、 配置用户名和邮箱五、环境变量配置1. 获取git的安装路径2. 设置环境变量 前言 当我们第一次在新电脑上使用git命令的时候,会报错【git 不是内部或外部命令,也不是可运行的程序 或批处理文件】…

Typora+PicGo+阿里云OSS搭建博客图床

🏠个人主页:shark-Gao 🧑个人简介:大家好,我是shark-Gao,一个想要与大家共同进步的男人😉😉 🎉目前状况:23届毕业生,目前在某公司实习&#x1f…

中国民营快递:战事永不休

【潮汐商业评论/原创】 在中国,没有一个任何行业的“战争”在时间和烈度上可以与快递业相比。这是一场持续长达20年,融合了规模战、价格战、资本战等你能想象到的所有形态的立体化“战争”。 更令人难以置信的是,眼下这场以人力、技术为武器…

你还不会写系统?超详细驾校科考系统教程,手把手教学(内涵源码,Qt实现界面,有接口可供二次开发刷题使用)

目录 一、创建项目 二、登录界面 三、验证邮箱地址 四、验证账号密码 五、考试时间 六、初始化题库 七、布局按钮 八、提交试题 九、窗口交互 一、创建项目 新建Qt桌面应用程序,项目名:ExamSys。 类信息:类名LoginDialog继承自QDi…

Windows 7出现两个IP地址,导致联网问题

Qt源码解析 索引 Windows7 出现两个IP介绍 问题描述 win7电脑连接网线后出现两个IP地址,导致网络连接出现问题。 可能的现象有 连接网络出现黄色感叹号 局域网即时通信(例如飞秋软件收发失败) 修改IP地址不生效 服务软件启动报错&#…

12吋全自动划片机有哪些功能?

1、大面积工作盘:可容纳多个工件,并自动对位。 2、轴光/环光:采用合适的光源照射,显示影像更能呈现工作物表面特征。 3、双倍率显微镜头:视野更大,精准快速进行对准校正工作。 4、非接触测高&#xff1a…

Text2Video-Zero:Text-to-Image Diffusion Models are Zero-Shot Video Generators

【AIGC-AI视频生成系列-文章1】Text2Video-Zero - 知乎一句话亮点:当文本-视频生成也不需要额外数据训练,只需要基于现有的diffusion-model 如Stable Diffusion能力调整即可实现,解决生成视频帧间不一致问题,是不是很心动。 文章链…

腾讯云轻量2核2G4M带宽月流量/CPU/地域选择及限制说明

腾讯云轻量应用服务器2核2G4M活动上线了,这款轻量服务器4M公网带宽,每月300G免费流量,系统盘为50GB SSD盘,腾讯云百科来详细说下轻量应用服务器配置、租用费用、地域选择、CPU型号等详细说明: 目录 腾讯云轻量2核2G4…

2023年上半年软件设计师中级学习总结(超详细)

目录 前言 一、背景1.1上次考试感受:1.2这次考试感受:1.3方法: 二、 过程2.1计算机网络概论计算机组成数据表示相关知识校验码相关知识计算机体系结构网络体系结构OSI/RM和TCP/IP计算机安全性可靠性性能评价 2.2 程序设计语言基础知识编译和解…

前端开发如何更好的避免样式冲突?级联层(CSS@layer)

作者:vivo 互联网前端团队 - Zhang Jiqi 本文主要讲述了CSS中的级联层(CSSlayer),讨论了级联以及级联层的创建、嵌套、排序和浏览器支持情况。级联层可以用于避免样式冲突,提高代码可读性和可维护性。 一、什么是级联…

选择交换机主要看哪些参数指标

交换机有几个性能指标您一定要知道哦,和海翎光电的小编一起温故而知新。 网络构成方式:接入层交换机、汇聚层交换机、核心层交换机 OST模型:第二层交换机、第三层交换机、第四层交换机……第七层交换机 交换机的可管理性:可管理…

电商分析必懂的指标体系,引流、转化、留存,一文带你搞懂

今天,我就来讲讲电商到底该重点关注哪些指标,又该拿这些指标来进行怎么样的分析。 一般来说,在运营模块,需要重点关注的是新用户的引流和转化,以及老用户的活跃、留存、回购、流失。 01 引流 简单来说,引…

【现实生活实际应用】【公交车换乘算法——算法用在公交车】【单源最短路-如何根据图意构建图,最重要】最优乘车【sstream输入】

问题出现了 其实我们构图的时候, 我们已经知道1 - 3 - 5 那么我们直接让1 连到 3 和 5 表示直达 如果出现另一路 4 7 3 6 则3最终连接的是 5 和 6 从1开始,先走到了 3 和 5 然后bfs宽搜到3(此时就表示换乘了,因为1直达的已经都遍历…

JavaEE进阶5/25(Spring 注解)

1.五大类注解详解(重点 1.Controller 控制器,用于业务逻辑层,来控制用户的行为。它用来检查用户参数的有效性。 当用户的参数有效的话会继续分发到服务层。controller可以理解为程序的安保系统 2.Service 服务层。归属服务层,调用…

【JavaSE】Java基础语法(二十九):Map集合

文章目录 1. Map集合概述和特点2. Map集合的基本功能3. Map集合的获取功能【应用】4. Map集合的遍历(方式1)5. Map集合的遍历(方式2)6. map四种遍历方式 1. Map集合概述和特点 Map集合概述 interface Map<K,V> K&#xff1a;键的类型&#xff1b;V&#xff1a;值的类型…

MySQL — 视图、存储过程、触发器

文章目录 视图/存储过程/存储函数/触发器一、视图1.1 语法1.1.1 创建视图1.1.2 查询1.1.3 修改1.1.4 删除1.1.5 对数据的操作 1.2 检查选项1.2.1 cascaded1.2.2 local 1.3 视图的更新1.4 视图的作用1.5 案例1.5.1 案例11.5.2 案例2 二、存储过程2.1 介绍2.2 基本语法2.3 变量2.…

【保姆级】拯救“爆红”C盘,轻松清出30G

目录 第一步 ​第二步 第三步 第四步 ​第五步&#xff08;可选&#xff09; 打开一个程序&#xff0c;发现等它启动好了咖啡都凉叻。。 访问个文件&#xff0c;都要转个圈圈。。不、转好几个圈圈⭕️⭕️⭕️⭕️⭕️⭕️⭕️ 更新、安装新软件时&#xff0c;提示“安装…

分布式网络通信框架(十二)——zookeeper简介与安装

简介 zookeeper&#xff08;后文简称zk&#xff09;提供功能有&#xff1a;服务注册中心、全局服务命名、以及分布式锁。 RPC服务会被发布到不同的服务器上&#xff0c;本项目zk的作用就是找到某一个RPC服务在哪一个服务器上&#xff0c;提供服务注册发现功能。 zk的数据如何…

Linux-0.11 入口函数main.c详解

Linux-0.11 入口函数main.c详解 模块简介 main.c大部分代码主要是对内核进行初始化&#xff0c;而main.c开始&#xff0c;就都是c语言编写的内核了。 函数详解 time_init static void time_init(void)该函数读取CMOS时钟信息作为系统的开机时间。 struct tm time;do {time…

携手高通,移远通信以全栈式车载产品实力重新定义汽车

5月25日至26日&#xff0c;2023高通汽车技术与合作峰会在苏州成功举办。 移远通信作为高通重要的长期战略合作伙伴&#xff0c;受邀参加此次峰会&#xff0c;并现场展示了支持5G/4G、C-V2X、算力、UWB、Wi-Fi、高精定位等领先技术的多款车规级模组、天线等产品&#xff0c;更有…