机器学习基础Matplotlib绘图

news2024/11/27 3:14:47

一、运行环境  

  1. 学习工具:jupyter-notebook
  2. python版本:311
  3. 系统:Win11

二、什么是matplotlib?

matplotlib是基于python生态开发的一个可视化绘图库,它的出现让python在数据分析及机器学习方面占了重要的一部分,目前很多数据分析及机器学习相关方面的工程都有使用到这个库,并且由于其简单易用,安装简单等方面的优势深得广大开发者的喜爱。

三、安装及导入

1.安装
pip install matplotlib
2. 导入项目
新建项目并直接import即可import matplotlib.pyplot as plt,简单易用

四、matplotlib的使用

  1. 基础使用:生成一个画布

highlighter- leaf

#定义一个画布
#subplots(X,Y,figsize=(X,Y))
#其中figsize(X,Y) 用于定义画布的大小
fig,ax = plt.subplots(figsize = (10, 5))
plt.show()

  1. 生成多个子图(ax)

highlighter- leaf

#subplots(X,Y)用于定义该画布有几行几列,即一个大画布fig上有多个小画布ax组成axes
fig,axes = plt.subplots(2,3,figsize = (10, 4))
plt.show()

  1. 绘制多个子图

highlighter- apache

#绘制多个子图
fig,axes = plt.subplots(1,2,figsize=(10,4))   #绘制一个一行两列的图

x=[1,20,40,15,2]
y=[4,6,15,7,6]

#对第一个子图进行绘制
bplot1 = axes[0].plot(x,y)

#绘制第二个子图
bplot2 = axes[1].plot(y,x)

  1. 同一块画布上绘制多条函数

highlighter- apache

#简单的线性图
# x = list(range(0,10))
# y =list(range(0,10))
# plt.plot(x,y)
plt.plot(range(12),color="red")  #等价于上面的操作
plt.plot([1,2,3])  #在现有的画布上继续绘画一条直线

  1. 放大图像(只显示函数图像的一部分)

highlighter- apache

#原函数图像
x=[1,20,40,15,2]
y=[4,6,15,7,6]
plt.plot(x,y)

highlighter- apache

#直接对x,y赋值
x=[1,20,40,15,2]
y=[4,6,15,7,6]
plt.plot(x,y)
#通过设定坐标轴刻度,只显示部分图形
plt.axis([0,10,0,10])   #x:[0,10],y:[0,10]

  1. 为图像添加标题横纵坐标信息
  • 添加标题和x、y名称

highlighter- apache

x=[1,20,40,15,2]
y=[4,6,15,7,6]
#添加标题
plt.title("matplotlibTest")
#添加x,y轴名称
plt.xlabel("Feature")
plt.ylabel("shape")
plt.plot(x,y)

  • 更改x、y轴刻度(纯数字形式)

highlighter- apache

x=[1,20,40,15,2]
y=[4,6,15,7,6]
#添加标题
plt.title("matplotlibTest")
#添加x,y轴名称
plt.xlabel("Feature")
plt.ylabel("shape")
#修改x轴刻度,纯数字形式
plt.xticks((0,10,20,30,40))
#修改y轴刻度,纯数字形式
plt.yticks((0,5,10,15,20))
plt.plot(x,y)

  • 更改x、y轴刻度(自定义坐标信息)

highlighter- apache

x=[1,20,40,15,2]
y=[4,6,15,7,6]
#添加标题
plt.title("matplotlibTest")
#添加x,y轴名称
plt.xlabel("Feature")
plt.ylabel("shape")
#自定义x轴坐标信息
plt.xticks((0,10,20,30,40),('text1','text2','text3','text4','text5'))
#自定义y轴坐标信息
plt.yticks((0,5,10,15,20),('align1','align2','align3','align4','align5'))
plt.plot(x,y)

  1. 基于axes的显示画图

highlighter- clean

#基于 axes 的显式画图:用 Axes 画图更加直观,所以被称为“显式画图”,直接用 Figure画图,被称为 “隐式画图”
import numpy as np
x = np.linspace(-1,1,50)  #生成50个-1到1之间的数
y = x**2

fig = plt.figure()  #生成空白画布
ax = fig.add_subplot() #空白的子图

ax.plot(x,y,color="red",linewidth=4,linestyle='-.',marker='o')  #绘画一条函数图

ax.plot(y,x)  #绘画另一条函数图

ax.legend(["y=x**2","y**2=x"])   #添加图例

ax.set_title('x and y',fontsize=20)  #设置标题
ax.set_xlabel("x label")  #设置x轴名称
ax.set_ylabel("y label")  #设置y轴名称
ax.set_xlim(-1,1)  #设置x轴范围
ax.set_ylim(-1,1)  #设置y轴范围

# ax.grid(linewidth=3,linestyle=':',color='purple',alpha=0.5)

plt.show()

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

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

相关文章

【二叉树】oj题

在处理oj题之前我们需要先处理一下之前遗留的问题 在二叉树中寻找为x的节点 BTNode* BinaryTreeFind(BTNode* root, int x) {if (root NULL)return NULL;if (root->data x)return root;BTNode* ret1 BinaryTreeFind(root->left, x);BTNode* ret2 BinaryTreeFind(ro…

uiautomator2 无法连接 ATX-Agent

最近需要写个安卓自动项目,本身不想用appium 。主要是appium需要安装的依赖太多,一单换个环境又要配置新的环境。但是ATX-Agent装好之后怎么都连接不是。 报错信息如下: .........省略............ uiautomator2.exceptions.GatewayError: (…

OD机考真题搜集:叠积木1

题目 有一堆长方体积木,它们的高度和宽度都相同,但长度不一。 小橙想把这堆积木叠成一面墙,墙的每层可以放一个积木,或将两个积木拼接起来,要求每层的长度相同。若必须用完这些积木,叠成的墙最多为多少层?如下是叠成的一面墙的图示,积木仅按宽和高所在的面进行拼接。 …

[Spring] 字节一面~Spring 如何解决循环依赖问题 以及 @resource 与 @autowire 同时存在时谁生效

文章目录 Spring 如何解决循环依赖问题resource 与 autowire 同时存在时谁生效 Spring 如何解决循环依赖问题 Spring在实例化一个bean的时候,是首先递归实例化其所依赖的所有bean,直到某个bean没有依赖其他bean,此时就会将该实例返回&#x…

python基础练习题库实验4

文章目录 题目1代码实验结果 题目2代码实验结果 题目3代码实验结果 题目4代码实验结果 题目5代码实验结果 题目6代码实验结果 题目总结 题目1 编写一个程序,使用for循环语句和字符串格式显示以下精确输出。 例如: 代码 for i in range(1, 11):result…

如何在Node.js和Express中设置TypeScript(2023年)

如何在Node.js和Express中设置TypeScript(2023年) 在这篇文章中,我们将介绍在Express应用程序中设置TypeScript的最佳方法,了解与之相关的基本限制。 文章目录 如何在Node.js和Express中设置TypeScript(2023年&#x…

智能优化算法应用:基于鲸鱼算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于鲸鱼算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于鲸鱼算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鲸鱼算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

[建议收藏] 一个网站集合所有最新最全的AI工具

今天给大家推荐一个宝藏的AI工具合集网站,有了这个网站,你们再也不用去其他地方找AI工具了。 名称:AI-BOT工具集 这个网站精选1000AI工具,并持续每天更新添加,包括AI写作、AI绘画、AI音视频处理、AI平面设计、AI自动编…

redis笔记 -- 基础数据结构

redis笔记 基础的数据结构:string、list、hash、set、zset 容器型数据结构(list、hash、set、zset)通用规则 如果容器不存在,就创建一个,再进行操作如果容器里没有数据了,就立即删除,回收内存…

人力资源管理后台 === 左树右表

1.角色管理-编辑角色-进入行内编辑 获取数据之后针对每个数据定义标识-使用$set-代码位置(src/views/role/index.vue) // 针对每一行数据添加一个编辑标记this.list.forEach(item > {// item.isEdit false // 添加一个属性 初始值为false// 数据响应式的问题 数据变化 视图…

Android 相机库CameraView源码解析 (一) : 预览

1. 前言 这段时间,在使用 natario1/CameraView 来实现带滤镜的预览、拍照、录像功能。 由于CameraView封装的比较到位,在项目前期,的确为我们节省了不少时间。 但随着项目持续深入,对于CameraView的使用进入深水区,逐…

Mybaits-plus的使用

MybatisPlus特性 润物无声: 只做增强不做改变,引入它不会对现有工程产生改变,如丝般顺滑。 效率至上 只需简单配置,即可快速进行单表CRUD操作,从而节省大量时间。 使用MybatisPlus依赖基本步骤 引入MybatisPlus依…

歌曲《难不难》由歌手荆涛演唱:面对挑战,勇敢前行

在人生的旅途中,我们都会遭遇种种困难和挑战。有时,一个看似简单的创意或想法,想要实现它却需要经历无数次的实践和辛酸。歌曲《难不难》由歌手荆涛演唱,以平实的语言和流畅的旋律,表达了面对困难和挑战时,…

使用360浏览器插件刷新网页

使用360浏览器插件刷新网页 1.打开360浏览器->扩展程序->更多扩展。 2.扩展中心->搜索”网页自动刷新”,然后安装。 3.在要学习的网页上,扩展程序中使用页面自动刷新插件。 4.如果页面打开慢就把10改大,比如改成15&#xff0…

新版idea如何开启多台JVM虚拟机

1.看看自己的项目 2.可能开始的时候啥也没有,就点Run Configuration Type 3.再点击Edit Configurations... 4.点击号添加SpringBoot 5.主类选择一下,一般就一个,点他选了就行。 6.然后点击Modify Options 选择添加add VM Options 7.点击appl…

Huggingface 超详细介绍

Hugging face 起初是一家总部位于纽约的聊天机器人初创服务商,他们本来打算创业做聊天机器人,然后在github上开源了一个Transformers库,虽然聊天机器人业务没搞起来,但是他们的这个库在机器学习社区迅速大火起来。目前已经共享了超…

windows的bat文件(学习笔记)

简介 通过windows的cmd执行的批处理,扩展名可以是.bat或.cmd(类似linux的shell脚本) 所有语句符号不区分大小写 帮助提示信息:命令 /? 1 基本语法 (1) 注释:rem 注释文本不执行 (2) 关闭盘符输出:e…

【软件测试】“我“做了一年的功能点点点测试,感觉在浪费时间...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 发现人们对测试非…

4/5G语音实现方案

今天又是学习充实的一天,今天我们来学习4G和5G语音实现方案的介绍,VOLITE通信流程是怎么样子的,和之前学的TCP协议有什么联系吗?今天我们换个角度来学习通信的流程~ 目录 2G/3G的电话和上网 4G语音实现方案 4G语音的三种方式 …

“BMP转PNG一键转换,批量处理图片,迈入高效图片管理新时代“

你是否曾经为了转换图片格式而烦恼?是否曾经因为一张一张地手动转换而感到无奈?现在,我们的全新工具将为你解决这些问题,开启高效图片管理新时代! 首先,我们进入首助编辑高手主页面,会看到有多种…