三、机器学习基础知识:Python常用机器学习库(Matplotlib)

news2024/9/25 19:23:29

文章目录

  • 1、Matplotlib
  • 2、基本结构
  • 3、pyplot模块
    • 3.1 pyplot.plot()函数的使用
    • 3.2 其他常见属性设置
    • 3.3 子图的绘制
  • 4、其他类型的图表
    • 4.1 竖向条形图
    • 4.2 散点图
    • 4.3 饼图

1、Matplotlib

matplotib库中有非常多的可视化绘图类,内部结构复杂。受 MATLAB 提供的绘图功能的启发,matplotlib提供了两个便捷的绘图子模块:pyplot 和pylab,其中pyplot模块提供了一套和MATLAB类似的绘图方法,这些方法把复杂的内部结构隐藏起来,通过简洁的绘图函数来实现不同的绘图功能;pylab 模块则包含了numpy库和pyplot模块中常用的一些函数,使用方法和 pyplot模块类似。
一般采用如下方式引入matplotlib库中的pyplot模块:

import matplotlib.pyplot as plt

2、基本结构

常见的绘图里面一般包含画布、图标题、x轴、y轴、绘图区、图例等基本元素,x轴和y轴中存在对应的刻度线和轴标题。
在这里插入图片描述

3、pyplot模块

matplotib中最常用的是pyplot模块,其内部包含绘制图形所需要的功能函数,常见的绘图函数如下所示。

函数功能
figure()创建一个空白画布,可以指定画布的大小和像素
subplot()在绘图区域创建子绘图区域
plot()基本绘图函数
title()设置图表标题
xlabel()设置x轴名称
yabel()设置y轴名称
xlim()指定x轴的刻度范围
ylim()指定y轴的刻度范围
legend()设置图例
savefig()保存图像
show()显示图像

绘图实例:

import matplotlib.pyplot as plt
import matplotlib
import numpy as np
matplotlib.rcParams['font.family']='SimHei'  #字体设置
matplotlib.rcParams['axes.unicode_minus']=False  #设置符号显示正常
x = np.linspace(0,10, 100) #设置x的取值范围
y = np.cos(x)  #设置y的取值
plt.plot(x,y,"b")  #将x、y进行绘图,颜色为蓝色
plt.title("cos函数") #设置图标题
plt.xlabel('x') #设置x轴标签
plt.ylabel('y=cosx')  #设置y轴标签
plt.ylim(-1.5,1.5)  #设置y轴取值范围
plt.legend(labels=["y=cosx"])  #设置图例
plt.show()  #显示图像

在这里插入图片描述

3.1 pyplot.plot()函数的使用

plot()是pyplot模块中最基本的一个绘图函数,其语法格式如下:

plot(x,y,s,linewidth)

其中x表示横坐标的取值范围,y表示与横坐标对应的纵坐标取值范围,s表示控制线型的格式字符串,linewidth表示线的宽度。
直线的绘制:

import matplotlib.pyplot as plt
plt.plot([1,2,3,4,5])
plt.show()

在这里插入图片描述

在上述绘图源码中plot函数中只有一个参数列表,则将此列表的每个元素作为y轴的取值,将每个元素的索引作为x取值。
plot()默认情况下绘制的图像是连续的,可以增加参数来控制点线的颜色、风格等,从而获得各种各样的图像。
常见的颜色字符:

字符描述字符描述
r红色k黑色
g绿色w白色
b蓝色c蓝绿色
y黄色m品红色
#00FF11RGB颜色模型对应的某种颜色

常见的点风格字符:

符号描述符号描述
,小的实心点.实心点
o大的实心点v倒三角
^上三角>右三角
<左三角s正方形
p正五边形h垂直正六边形
H水平正六边形+十字
x叉号d菱形

常见的线风格字符:

符号描述
-实线
破折线
:虚线
-.点横线

风格点的绘制:

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
y=x
plt.plot(x,y,"bs")
plt.show()

在这里插入图片描述

风格线的绘制:

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
y=x
plt.plot(x,y,"k--")
plt.show()

在这里插入图片描述

此外plt()函数还支持在一张图纸上绘制多个图形。

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
y1=x
y2=x*2
plt.plot(x,y1,"bs",x,y2,"k--")
plt.show()

在这里插入图片描述

3.2 其他常见属性设置

pyplot模块中常用的函数及其功能分别如下:

  1. axis()函数。该函数是获取或设置坐标轴属性的快捷方法,axis()函数在使用时可通过传递参数设置x、y轴的取值区间,也可以通过传递参数设置坐标轴是否显示,调用该函数会返回一个由x轴取值区间边界xmin、xmax和y轴取值区间边界值ymin、ymax组成的元组。
    一般axis()函数的使用方法有如下几种:
xmin,xmax,ymin,ymax = axis()  #返回当前坐标轴的区间信息
axis(xmin,xmax,ymin,ymax)  #设置新的坐标轴的区间信息
xmin,xmax,ymin,ymax = axis(option)  #设置坐标轴的状态等属性

其中option参数可以设置的内容及其作用如下:

描述
‘on’坐标轴和标签可见
‘off’坐标轴和标签不可见
‘equal’通过更改轴的的取值区间来设置相等的缩放比例
‘scaled’通过更改绘图框的尺寸来设置相等的缩放比例
‘tight’设置足够大的区间以显示所有数据
‘auto’自动缩放
‘image’坐标轴的取值范围根据数据范围进行缩放
‘square’方形图,类似’scaled’,但强制要求xmax-xmin = ymax-ymin
  1. xlim()函数。xlim()函数用于设置或者返回x轴的取值区间,可以通过传递参数直接设置,也可以通过调用函数返回取值区间进行设置。
    一般xlim()函数的使用方法有如下几种:
xmin,xmax=xlim()  #返回当前x轴的取值区间
xlim(xmin,xmax) #设置x轴的取值区间
  1. ylim()函数。ylim()函数用于设置y轴的取值区间,使用方法和xlim()函数一致。
  2. xticks()函数。xticks()函数用于设置或返回x轴的刻度值或刻度标签,可以通过传递参数直接设置,也可以通过调用函数返回刻度值进行设置。
    一般xticks()函数的使用方法有如下几种:
x_ticks,labels = xticks()  #返回当前x轴的刻度值和刻度标签
xticks(x_ticks,[labels])  #设置x轴的刻度值和刻度标签,刻度标签可以省略
  1. yticks()函数。yticks()函数用于设置y轴的刻度值或刻度标签,使用方法和xticks()函数一致。
  2. xlabel()函数。xlabel()函数用于设置x轴的标签,通过传递参数设置x轴的标签及其标签属性。使用方法如下:
xlabel(label)  #将x轴的标签设置为label
  1. yxabel()函数。ylabel()函数用于设置y轴的标签,使用方法和xlabel()函数一致。
  2. legend()函数。legend()函数通过传递参数设置当前绘图区的图例。使用方法如下:
legend([图例1,[图例2,图例3]])  #在绘图区适当的位置显示一个或若干个图例
  1. text()函数。text()函数通过传递参数可以在指定的坐标位置显示相应的文本。使用方法如下:
text(x,y,s)  #在坐标系的(x,y)点,显示文本s
  1. title()函数。title()函数通过传递参数设置当前绘图区的标题及其显示位置,位置参数可以为‘center’、‘left’、‘right’,对应中间、左、右,默认为‘center’。使用方法如下:
title(s,loc='center')  #为绘图区添加标题s,默认居中显示

上述函数的使用实例:

import matplotlib.pyplot as plt
import matplotlib
import numpy as np
matplotlib.rcParams['font.family']='SimHei'  #设置中文字体为黑体
x=np.arange(5)
y1=x
y2=2*x
y3=3*x
plt.plot(x,y1,"bs",x,y2,"k--",x,y3,"ro-")  #三条直线的绘制
plt.axis('scaled') #设置x轴y轴按实际比例显示
plt.xlim(0,5)  #设置x轴的区间
plt.ylim(0,15)  #设置y轴的区间
plt.xticks([0,1,2,3,4])  #设置x轴刻度
plt.yticks([3,6,9,12,15],['a','b','c','d','e'])  #设置y轴的刻度标签,'a'对应3,以此类推
plt.xlabel('x轴')  #设置x轴名称
plt.ylabel('y轴')  #设置y轴名称
plt.legend(["y1=x","y2=2x","y3=3x"])  #设置图例
plt.text(1,8,"直线")  #在坐标(1,8)处添加文本"直线"
plt.show()

在这里插入图片描述

3.3 子图的绘制

如果需要在一个绘图区域绘制多个不叠加的图形,需要使用到pyplot模块中的subplot()函数,使用方法如下:

subplot(nrows,ncols,index)

其中nrows表示将绘图区分割成nrows行;ncols表示将绘图区分割成ncols列;index用于指定当前子绘图区域的索引,子区域索引按照行优先顺序从1开始进行编号,步长为1。
绘制子图实例:

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
y1=x
y2=2*x
y3=3*x
y4=4*x
plt.subplot(2,2,1)  #第一行第一列子图的绘制
plt.plot(x,y1,"bs") 
plt.subplot(2,2,2)  #第一行第二列子图的绘制
plt.plot(x,y2,"k--") 
plt.subplot(2,2,3)  #第二行第一列子图的绘制
plt.plot(x,y3,"ro-") 
plt.subplot(2,2,4)  #第二行第二列子图的绘制
plt.plot(x,y4,"m:")
plt.show()

在这里插入图片描述

4、其他类型的图表

pyplot()模块除了提供绘制直、曲线或离散点的plot()函数外,还提供了绘制条形图、散点图、饼图等多种图形的函数。常见的绘制图形函数如下:

函数描述
bar()绘制竖向条形图
barh()绘制横向条形图
hist()绘制直方图
pie()绘制饼图
boxplot()绘制箱形图
scatter()绘制散点图

下面选择几种常见的绘制函数展开介绍。

4.1 竖向条形图

绘制竖向条形图的函数用法如下:

bar(x,height)

其中x表示x轴对应的值,height表示与x对应的高度。

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
height=[1,7,9,4,5]
plt.bar(x,height)
plt.show()

在这里插入图片描述

4.2 散点图

绘制散点图的函数用法如下:

scatter(x,y)

其中x表示x轴对应的值,y表示与x对应的y值。

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(5)
y=[1,7,9,4,5]
plt.scatter(x,y)
plt.show()

在这里插入图片描述

4.3 饼图

绘制饼图的函数用法如下:

pie(x,explode=None,labels-None,autopct=None,shadow=False)

其中x表示绘制饼图的数据集;explode表示设置饼块分离,默认为空,表示不分离;labels表示设置饼块对应标签,默认为空;autopct表示设置饼块显示占比值,默认为空;shadow表示设置饼图是否有阴影,默认为False。

import matplotlib.pyplot as plt
data = [1,2,3,4,5]
Explode = (0.1,0,0,0,0)  #第一个饼块分离
Labels=['num1','num2','num3','num4','num5']  #饼块对应的标签
plt.pie(data,explode=Explode,labels=Labels,autopct='%.2f%%')  #autopct='%.2f%%'设置显示占比值并保留两位小数
plt.show()

在这里插入图片描述

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

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

相关文章

任正非说:扩张必须踩在坚实的基础上,擅自扩张只能是自杀。

嗨&#xff0c;你好&#xff01;这是华研荟【任正非说】系列的第23篇文章&#xff0c;让我们继续聆听任正非先生的真知灼见&#xff0c;学习华为的管理思想和管理理念。 一、要想赢&#xff0c;要么在剑法上高于人&#xff0c;要么在盾牌上坚于人。若果剑不如人&#xff0c;就要…

关于基站能耗监控解决方案的应用探讨-安科瑞 蒋静

摘 要&#xff1a;随着社会的不断发展和进步&#xff0c;人们对通信基站的需求增加。随着通信基站大规模的建设和使用&#xff0c;基站内部的电源情况、供电安全保障或节能减排等问题&#xff0c;仍然是基站建设的着重问题。不管是建设者还是使用者&#xff0c;都应当注重用电…

使用Process Explorer/Process Hacker和Windbg排查软件高CPU占用问题

目录 1、问题说明 2、Process Explorer与Windbg工具介绍 2.1、Process Explorer工具 2.2、Windbg调试器 3、引发程序高CPU占用的原因分析 4、在任务管理器和Process Explorer中查看目标程序的CPU占用 5、使用Process Explorer和Process Hacker查看占用CPU高的线程 5.1、…

安装 MySQL 服务时提示 Install/Remove of the Service Denied

安装 MySQL 服务时提示 Install/Remove of the Service Denied 1. 概述1.1 问题1.2 没有 MySQL 服务的时候 2. 解决方法 1. 概述 1.1 问题 在安装 MySQL-8.0.25-winx64 的 MySQL 服务时遇到了以下提示&#xff1a; 安装 MySQL 服务时提示&#xff1a;、 Install/Remove of t…

【c++|opencv】一、基础操作---3.访问图像元素

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 访问图像元素 1. 访问图像像素 1.1 访问某像素 //灰度图像&#xff1a; image.at<uchar>(j, i) //j为行数&#xff0c;i为列数 //BGR彩色图像 i…

清华 ChatGLM-6B 中文对话模型部署简易教程

本文目录 一、前言二、下载三、部署3.1 配置环境3.2 启动 demo 程序3.2.1 启动 cli_demo.py3.2.2 启动 web_demo.py 四、【最新】ChatGLM-6B-int4 版本教程4.1 下载4.2 配置环境4.3 启动 demo 程序 五、华为 CodeLab 免费 GPU 平台部署 ChatGLM-6B-int4&#xff08;CPU版&#…

移植wpa_supplicant及简单使用

嵌入式环境下的设备有时会需要能连接到外网进行一些数据的交互&#xff0c;通过利用wpa_supplicant客户端结合有线网卡或无线网卡&#xff0c;即可配置好网络达到目的。 资源&#xff1a;openssl-0.9.8e.tar.gz wpa_supplicant-0.7.3.tar.gz 源代码下载路径一&#xff1a;http…

激光雷达,被降本“牺牲”?

激光雷达&#xff0c;正在成为车企「价格战」的牺牲品。尤其是纯视觉方案带来的巨大显性降本效应&#xff0c;开始动摇车企的传感器配置策略。 本周&#xff0c;随着极越01的上市&#xff0c;相比去年发布的探月版车型39.98万的定价&#xff0c;大幅下降至24.99-33.99万&#…

【c++|opencv】二、灰度变换和空间滤波---1.灰度变换、对数变换、伽马变换

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 灰度变换、对数变换、伽马变换 1. 灰度变换 #include <iostream> #include <opencv2/opencv.hpp>using namespace std; using namespace c…

pytorch复现2_AlexNet

不涉及原理 AlexNet网络结构 代码&#xff1a; model&#xff1a; import torch.nn as nn import torchclass AlexNet(nn.Module):def __init__(self, num_classes1000, init_weightsFalse):super(AlexNet, self).__init__()self.features nn.Sequential(nn.Conv2d(3, 48, k…

mongdb 存在重复字段值,建立唯一索引失败

1. 插入两条相同的数据 db.user.insertOne({name:"test",age:30, })2. 创建索引 db.user.createIndex({name:1},{unique: true});3. 报错

《2023北京智慧城市创新应用案例集》丨附下载

✦ ✦✦ ✦✦ ✦✦ ✦ 建设数字中国是数字时代推进中国式现代化的重要引擎&#xff0c;是构筑国家竞争新优势的有力支撑。党的二十大报告提出要提高城市规划、建设、治理水平&#xff0c;“打造宜居、韧性、智慧城市”&#xff1b;要加快发展数字经济&#xff0c;促进数字经济…

常用 sqlite3 命令

本次将向您讲解 SQLite 编程人员所使用的简单却有用的命令。这些命令被称为 SQLite 的点命令&#xff0c;这些命令的不同之处在于它们不以分号 ; 结束。 让我们在命令提示符下键入一个简单的 sqlite3 命令&#xff0c;在 SQLite 命令提示符下&#xff0c;您可以使 用各种 …

PTA 树的同构

题目 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2&#xff0c;则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的&#xff0c;因为我们把其中一棵树的结点A、B、G的左右孩子互换后&#xff0c;就得到另外一棵树。而图2就不是同构的。 现给定两棵树…

广播机制-广播接收者BroadcastReceiver

在Android中&#xff0c;广播是一种在组件之间传递消息的机制&#xff0c;例如电池电量低时会发送一条提示如果要接收并过滤广播中的消息&#xff0c;则需要使用Broadcast Receiver&#xff08;广播接收者&#xff09;。广播接收者是Android四大组件之一&#xff0c;通过广播接…

dockerfile中临时拉取gitlab代码

git clone https://<name>:<token>gitlab.com/<USER>/<REPO>.git

基于STM32F103C8T6的UAV飞控板硬件设计

一、主控单元&#xff1a; 主控单元基于意法半导体公司的STM32F103C8T6单片机进行设计。STM32F103C8T6DE 内核为ARM Cortex-M3&#xff1b;最大主频&#xff1a;72MHz &#xff1b;工作电压范围&#xff1a;2V~3.6V &#xff1b;程序存储容量&#xff1a;64KB&#xff1b; 程序…

qtableview委托应用

https://download.csdn.net/download/venice0708/88485153

Python构造代理IP池提高访问量

目录 前言 一、代理IP是什么 二、代理IP池是什么 三、如何构建代理 IP 池 1. 从网上获取代理 IP 地址 2. 对 IP 地址进行筛选 3. 使用筛选出来的 IP 地址进行数据的爬取 四、总结 前言 爬虫程序是批量获取互联网上的信息的重要工具&#xff0c;在访问目标网站时需要频…

【广州华锐互动】牛顿运动定律VR虚拟教学软件

在科技日新月异的今天&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经逐渐渗透到各个领域&#xff0c;为我们带来了前所未有的沉浸式体验。在教育领域&#xff0c;VR技术的应用也日益广泛&#xff0c;尤其是在物理教学中&#xff0c;牛顿运动定律VR虚拟教学软件为学生…