matplotlib参数详解

文章目录

  • 一、简介
  • 二、安装与调用
  • 三、绘图与风格设置
    • 3.1、绘图标记
      • 3.1.1、标记类型(marker='*')
      • 3.1.2、标记大小、内部和边框颜色(ms=10、mfc='r'、mec='g')
    • 3.2、绘图线
      • 3.2.1、线类型(linestyle='--')
      • 3.2.2、线宽(linewidth='20.5')
      • 3.2.3、线颜色(color='r')
    • 3.3、添加(标题 + 标签 + 图例 + 网格) + 设置刻度(范围/位置/标签)
      • 3.3.1、*args 和 **kwargs 的用法
      • 3.3.2、plt.title():添加标题
      • 3.3.3、plt.xlabel():添加x轴标签
      • 3.3.4、plt.xlim():设置x轴刻度的范围
      • 3.3.5、plt.xticks():设置x轴刻度的位置和标签
      • 3.3.6、plt.legend():添加图例
      • 3.3.7、plt.grid():添加网格
    • 3.4、综合实战
  • 四、其他函数
    • 4.1、plt.subplot():同时绘制多张图
    • 4.2、plt.savafig():保存图像
    • 4.3、plt.colorbar():显示颜色条
    • 4.4、plt.show():显示图像
  • 五、多类型图表绘制
    • 5.1、plt.plot():绘制点和线
    • 5.2、plt.scatter():绘制散点图
  • 参考文献

一、简介

在这里插入图片描述
matplotlib是Python的可视化绘图工具之一,用于创建静态、动态或交互式的可视化图表。matplotlib官网

  • 最初目的:用于可视化癫痫病人的脑皮层电图相关的信号。
  • 发展历程:由 John D. Hunter 在 2002 年开始编写,在 2003 年发布了第一个版本。matplotlib 是一个社区项目,由其用户维护。
  • 支持跨平台运行,可以配合 Python GUI 工具包(比如: PyQt,WxPython、Tkinter)在应用程序中嵌入图形。并支持以脚本的形式在 Python、IPython Shell、Jupyter Notebook 以及 Web 应用的服务器中使用。
  • 提供了面向对象绘图的 API 接口,包括 2D 绘图库,以及部分 3D 绘图接口。可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。

在这里插入图片描述

二、安装与调用

matplotlib 是 Python 的第三方绘图库,故需要安装后使用。本节以 Windows10 系统为例,介绍 Matplotlib 的几种安装方式。

  • (1)使用 pip 安装
    打开 CMD 命令提示符窗口,并输入以下命令:pip install matplotlib
  • (2)使用 Anaconda 安装
    安装 matplotlib 的最好方法是下载 Python 的 Anaconda 发行版,因为 matplotlib 被预先安装在 Anaconda 中。
  • (3)使用 conda 安装
    打开 CMD 命令提示符窗口,并输入以下命令:conda install -c conda-forge matplotlib

在绘图之前,需要先导入pyplot库:import matplotlib.pyplot as plt。然后就可以调用相应的方法进行绘图。pyplot 是 matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。plt 是通过as设置的(常用)别名。

三、绘图与风格设置

3.1、绘图标记

3.1.1、标记类型(marker=‘*’)

使用关键字参数 marker 来设置点类型。RUNOOB.COM:绘图标记

序号123456789101112131415161718192021222324
标记符'.'',''o''*''v''^''<''>''1''2''3''4''s''p''h''H''+''P''x''X''D''d''_'I
说明PointPixelCirclestartriangle_downtriangle_uptriangle_lefttriangle_righttri_downtri_uptri_lefttri_rightSquarePentagonhexagon1hexagon2PlusPlus (filled)xX (filled)DiamondDiamond (thin)HlineVline

3.1.2、标记大小、内部和边框颜色(ms=10、mfc=‘r’、mec=‘g’)

使用关键字参数 markersize、markerfacecolor、markeredgecolor 来设置标记大小、内部颜色、边框颜色。

  • markersize,简写为 ms:定义标记的大小。
  • markerfacecolor,简写为 mfc:定义标记的内部颜色。
  • markeredgecolor,简写为 mec:定义标记的边框颜色。

3.2、绘图线

3.2.1、线类型(linestyle=‘–’)

使用关键字参数 linestyle 或 ls 来设置线类型。

序号1234
标记符'-''--''-.'':'
说明实线破折线点划线虚线

3.2.2、线宽(linewidth=‘20.5’)

使用关键字参数 linewidth 或 lw 来设置线宽。(字符串格式)可以输入浮点数。

3.2.3、线颜色(color=‘r’)

使用关键字参数 color 或 c 来设置颜色。

序号12345678
标记符'b''g''r''c''m''y''k''w'
说明蓝色Blue绿色Green红色Red青色Cyan品红Magenta黄色Yellow黑色Black白色White

3.3、添加(标题 + 标签 + 图例 + 网格) + 设置刻度(范围/位置/标签)

序号函数说明
1plt.title()添加标题。可以指定名称、位置、颜色、字体大小等参数。
2plt.xlabel()添加x轴标签。可以指定名称、位置、颜色、字体大小等参数。
3plt.ylabel()添加y轴标签。可以指定名称、位置、颜色、字体大小等参数。
4plt.xlim()设置x轴刻度的范围
5plt.ylim()设置y轴刻度的范围
6plt.xticks()设置x轴刻度的位置和标签。可以指定标签的字体大小、字体样式、旋转角度
7plt.yticks()设置y轴刻度的位置和标签。可以指定标签的字体大小、字体样式、旋转角度
8plt.legend()添加图例。可以指定图例的大小、位置、标签。
9plt.grid()添加网格。可以指定网格的方向、线类型、线宽、颜色。

3.3.1、*args 和 **kwargs 的用法

【Python】*args 和 **kwargs 的用法【最全详解】

  • 位置参数(arguments,args)* args 表示将不定数量的参数传递给一个函数, 本质上是一个元祖tuple
  • 关键字参数(keyword arguments,kwargs)** kwargs 表示将不定长度的 键值对(key-value)作为参数传递给一个函数, 本质上是一个字典dict

3.3.2、plt.title():添加标题

matplotlib.pyplot.title() 参数详解

"""
函数说明:plt.title(*args, **kwargs)
关键字参数:
		(0)label					标签文本
		(1)fontsize				字体大小(默认12)	可选参数:[xx-small, x-small, small, medium, large, x-large, xx-large]
		(2)fontweight				字体粗细				可选参数:[light, normal, medium, semibold, bold, heavy, black]
		(3)fontstyle				字体类型				可选参数:[normal正常, italic斜体, oblique倾斜]
		(4)verticalalignment		水平对齐方式			可选参数:[center, top, bottom, baseline]
		(5)horizontalalignment	垂直对齐方式			可选参数:[left, right, center]
		(6)rotation				旋转角度				可选参数:[vertical, horizontal, 数字]
		(7)alpha					透明度				参数值范围:[0, 1]
		(8)backgroundcolor		标题背景颜色
		(9)bbox					给标题增加外框 		常用参数如下:[boxstyle方框外形, facecolor(简写fc)背景颜色, edgecolor(简写ec)边框线条颜色, edgewidth边框线条大小]
"""

3.3.3、plt.xlabel():添加x轴标签

matplotlib.pyplot.xlabel 参数详解

"""
函数说明:plt.xlabel(*args, **kwargs)
关键字参数:
			xlabel/ylabel			标签文本
			fontsize				字体大小。[数字, 'small', 'large', 'medium']
			verticalalignment		上下平移。['top', 'bottom', 'center', 'baseline']
			horizontalalignment		左右平移。['center', 'right', 'left']
			rotation				旋转角度。['vertical', 'horizontal']
			
默认:plt.xlabel(fontsize='large', verticalalignment='top', horizontalalignment='center', rotation='horizontal')
默认:plt.ylabel(fontsize='large', verticalalignment='bottom', horizontalalignment='center', rotation='vertical')
"""

3.3.4、plt.xlim():设置x轴刻度的范围

matplotlib.pyplot.xlim() 参数详解

"""
函数说明:plt.xlim(*args, **kwargs)
关键字参数:
			left			设置刻度的最小值
			right			设置刻度的最大值

函数说明:plt.ylim(*args, **kwargs)
关键字参数:
			bottom			设置刻度的最小值
			top				设置刻度的最大值
"""

3.3.5、plt.xticks():设置x轴刻度的位置和标签

matplotlib.pyplot.xticks() 参数详解

"""
函数说明:plt.xticks(ticks=None, labels=None, **kwargs)
关键字参数:
			ticks			刻度位置(列表格式)。若传入空列表,即不显示x轴。
			labels			刻度位置对应的标签文本(列表格式)。当ticks参数有输入值,该参数才能传入参数
			**kwargs		用来控制标签文本的展示格式。例如:标签的字体大小、字体样式、旋转角度(默认逆时针旋转)等
"""

3.3.6、plt.legend():添加图例

matplotlib.pyplot.legend() 参数详解

"""
函数说明:plt.legend(*args, **kwargs)
关键字参数:
		loc				设置图例位置(int数字、string单词均可以控制)	
							0:'best'			1:'upper right'		2:'upper left'		3:'lower left'		
							4:'lower right'		5:'right'			6:'center left'		7:'center right'	
							8:'lower center'	9:'upper center'	10:'center'
		fontsize		设置字体大小[int, float, {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}]
		frameon			是否绘制图例边框[False, True]
		edgecolor		设置图例边框颜色['blue', 'red'...]
		facecolor		设置图例背景颜色['blue', 'red'...]
		title			设置图例标题(字符串)
		
		prop			字体参数
		markerscale		图例标记与原始标记的相对大小
		markerfirst		如果为True,则图例标记位于图例标签的左侧
		numpoints		线条图图例条目创建的标记点数
		scatterpoints	散点图图例条目创建的标记点数
		scatteryoffsets	散点图图例条目创建的标记的垂直偏移量
		fancybox		控制是否应在构成图例背景的FancyBboxPatch周围启用圆边
		shadow			控制是否在图例后面画一个阴影
		framealpha		控制图例框架的 Alpha 透明度
		ncol			设置图例分为n列展示
		borderpad		图例边框的内边距
		labelspacing	图例条目之间的垂直间距
		handlelength	图例句柄的长度
		handleheight	图例句柄的高度
		handletextpad	图例句柄和文本之间的间距
		borderaxespad	轴与图例边框之间的距离
		columnspacing	列间距
		bbox_to_anchor	指定图例在轴的位置
		bbox_transform	bbox的转换
"""

3.3.7、plt.grid():添加网格

matplotlib.pyplot.grid() 参数详解

"""
函数说明:plt.grid(b=None, which='major', axis='both', **kwargs)
输入参数:
			b:				是否显示网格。布尔值=[True, False]。可选,默认None
			which:			网格线。['major', 'minor', 'both']。可选,默认'major'
			axis:			设置显示哪个方向的网格线。['x', 'y', 'both']。可选。
			**kwargs:		设置网格样式。[color='r', linestyle='-', linewidth=2],分别表示网格线的颜色,样式和宽度。可选。
"""

3.4、综合实战

在这里插入图片描述

from matplotlib import pyplot as plt
import numpy as np
import math

# 创建 0~2π 的ndarray对象,步长为0.05。
x = np.arange(0, math.pi*2, 0.05)		# 创建一维向量:x
y = np.sin(x)							# 创建一维向量:y

p1, = plt.plot(x+1, y+1)				# plot绘图1
p2, = plt.plot(x+2, y+2)				# plot绘图2
p3, = plt.plot(x+3, y+3, marker='o', ms=5, color='b')				
p4, = plt.plot(x+4, y+4, linestyle='--', linewidth='8', color='r')

plt.xlabel(xlabel="angle")				# 添加x轴标签
plt.ylabel(ylabel="sin")				# 添加y轴标签
plt.xlim(left=0, right=12)				# 设置x轴刻度的范围
plt.ylim(bottom=-2, top=8)				# 设置y轴刻度的范围
plt.xticks(rotation=-135)				# 设置x轴刻度的位置和标签
plt.yticks(ticks=[1, 2, 3], labels=['A', 'B', 'C'], rotation=30)				
plt.legend([p1, p2, p3, p4], ["line 1", "line 2", '3', '4'], loc='upper left')	# 添加图例
plt.grid(b=True, which='major', axis='x')
plt.title(label='sin wave')				# 添加标题
plt.show()								# 显示图像

四、其他函数

4.1、plt.subplot():同时绘制多张图

方式一:

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np

x = np.array([0, 6])
y = np.array([0, 100])

plt.subplot(2, 2, 1), 	plt.plot(x+10, y+10), 	plt.title("plot 1")
plt.subplot(2, 2, 2), 	plt.plot(x+15, y-10), 	plt.title("plot 2")
plt.subplot(2, 2, 3), 	plt.plot(x-10, y+20), 	plt.title("plot 3")
plt.subplot(2, 2, 4), 	plt.plot(x+30, y-20), 	plt.title("plot 4")
plt.show()

方式二:

import matplotlib.pyplot as plt
import numpy as np

# 读取多张图像
images = [img, thresh1, thresh2, thresh3, thresh4, thresh5]
titles = ['Original Image', 'BINARY', 'BINARY_INV', 'TRUNC', 'TOZERO', 'TOZERO_INV']

for ii in range(6):
    plt.subplot(2, 3, ii+1)
    plt.imshow(images[ii], 'gray')
    plt.title(titles[ii])
    plt.savefig('{}.png'.format(ii+1))
plt.show()

4.2、plt.savafig():保存图像

注意事项:调用plt.savafig()必须在plt.show()之前,不然保存结果为一张空白图。因为plt.show()之后会自动调用clear()清除缓存。plt.savefig() 保存空白或显示错乱

"""
函数说明:plt.savefig('test.jpg', dpi=200, bbox_inches='tight')
输入参数:
			path			保存路径
			dpi				设置图像的分辨率
			bbox_inches		设置图像与图例之间的位置,可以避免图像与图例叠加在一起。
"""

4.3、plt.colorbar():显示颜色条

颜色条类型

4.4、plt.show():显示图像

使用plt.show()之后,程序会在该语句处暂停,且不继续向下执行。只有关闭当前图像,程序才可以继续执行。

五、多类型图表绘制

序号函数说明函数说明
2plt.plot()绘制点和线plt.scatter()绘制散点图
4plt.bar()绘制条形图plt.barh()绘制横向条形图
6plt.hist()绘制直方图plt.pie()绘制饼图
8plt.psd()绘制功率谱密度图plt.specgram()绘制谱图
10plt.cohere()绘制相关性函数plt.boxplot()绘制箱形图
12plt.step()绘制步阶图plt.polar()绘制极坐标图
14plt.contour()绘制等值图plt.vlines()绘制垂直图
16plt.stem()绘制柴火图plt.plot_date()绘制数据日期
18plt.clabel()绘制轮廓图plt.hist2d()绘制2D直方图
20plt.quiverkey()绘制颤动图plt.stackplot()绘制堆积面积图
22plt.Violinplot()绘制小提琴图

5.1、plt.plot():绘制点和线

plt.plot() 函数详解

>

"""
函数说明:plt.plot(x, y, '可选字符串类型', **kwargs)
输入参数:
			x				x轴数据(列表或数组)。可选参数:当没有x,则默认[0, 1, …, len(y)]递增
			y				y轴数据(列表或数组)
			可选字符串类型	[marker标记类型, linestyle线类型]
			**kwargs		如:[label, linewidth, color]
"""
import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [5, 6, 7, 8]
plt.plot(x, y, 'r--', label = 'aa')
plt.xlabel('this is x')
plt.ylabel('this is y')
plt.title('this is a demo')
plt.legend() 		# 显示样例
plt.show()			# 显示图像	

5.2、plt.scatter():绘制散点图

plt.scatter()函数详解

在这里插入图片描述

"""
函数说明:plt.scatter(x, y, s=20, c='b', marker='o', alpha=None, **kwargs)
输入参数:
			x,y:			长度相同的数组
			s:				点的大小。可选,默认20。若输入为数组,则数组中的每个参数是对应点的大小。
			c:				点的颜色。可选,默认蓝色 'b'。若输入为数组,则数组中的每个参数是对应点的颜色。
			marker:		标记点类型。可选,默认圆圈'o'。
			linewidths:	标记点宽度。可选,默认None。
			alpha:			透明度=[0, 1]。可选,默认None。
			
			cmap:			(1)Colormap,默认None,标量或者是颜色条colormap的一个名字,只有 c 是一个浮点数数组的时才使用。如果没有申明就是image.cmap。
							(2)设置颜色条需要使用 cmap 参数,默认值为 'viridis',之后颜色值设置为 0 到 100 的数组。
			norm:			亮度Normalize=[0, 1],默认None。只有 c 是一个浮点数的数组的时才使用。
			vmin,vmax:	亮度设置,在 norm 参数存在时会忽略。
			edgecolors:	颜色或颜色序列,默认'face',可选值有'face', 'none', None。
			plotnonfinite:	布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。
			**kwargs:		其他参数。
"""

import numpy as np
import matplotlib.pyplot as plt

# 设置随机数种子(若输入数字不变,则每次运行结果相同。否则不同)
np.random.seed(2)	
N = 20	
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = (50*np.random.rand(N))**2

plt.scatter(x, y, s=area, c=colors, alpha=0.5)
plt.colorbar()		# 显示颜色条
plt.show()			# 显示图像

参考文献

1、matplotlib官网
2、C语言中文网:matplotlib教程
3、RUNOOB.COM官网:matplotlib教程
4、matplotlib库介绍:表格汇总
5、Python–matplotlib(基本用法)
6、Python深度学习入门之plt画图工具基础使用(注释详细,超级简单)
7、python基础语法(二)——— plt的一些函数使用

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++入门教程||C++ 字符串||

C 字符串C 字符串C 提供了以下两种类型的字符串表示形式&#xff1a;C 风格字符串C 引入的 string 类类型C 风格字符串C 风格的字符串起源于 C 语言&#xff0c;并在 C 中继续得到支持。字符串实际上是使用 null 字符 终止的一维字符数组。因此&#xff0c;一个以 null 结尾的…

大文件上传

上图就是大致的流程一、标题图片上传课程的标题图片Ajax发送请求到后端后端接收到图片使用IO流去保存图片&#xff0c;返回图片的信息对象JS回调函数接收对象通过$("元素id").val(值)&#xff0c;方式给页面form表达img标签src属性值&#xff0c;达到上传图片并回显二…

若依微服务(ruoyi-cloud)保姆版容器编排运行

一、简介 项目gitee地址&#xff1a;https://gitee.com/y_project/RuoYi-Cloud 由于该项目运行有很多坑&#xff0c;大家可以在git克隆拷贝到本地后&#xff0c;执行下面的命令使master版本回退到本篇博客的版本&#xff1a; git reset --hard 05ca78e82fb4e074760156359d09a…

扒一扒抖音是如何做线程优化的

背景 最近在对一些大厂App进行研究学习&#xff0c;在对某音App进行研究时&#xff0c;发现其在线程方面做了一些优化工作&#xff0c;并且其解决的问题也是之前我在做线上卡顿优化时遇到的&#xff0c;因此对其具体实现方案做了深入分析。本文是对其相关源码的研究加上个人理…

人员玩手机离岗识别检测系统 yolov5

人员玩手机离岗识别检测系统根通过pythonyolov5网络模型识别算法技术&#xff0c;人员玩手机离岗识别检测算法可以对画面中人员睡岗离岗、玩手机打电话、脱岗睡岗情况进行全天候不间断进行识别检测报警提醒。Python是一种由Guido van Rossum开发的通用编程语言&#xff0c;它很…

【2023.3.18 美团校招】

文章目录1. 小美剪彩带2. 最多修改两个字符&#xff0c;生成字典序最小的回文串1. 小美剪彩带 题意&#xff1a;找出区间内不超过k种数字子数组的最大长度 使用双指针的方式&#xff0c;用哈希表来统计每个数出现次数。在双指针移动的过程中&#xff0c;动态的维护区间内不同数…

难以置信,已经有人用 ChatGPT 做 Excel 报表了?

要问2023年初科技领域什么最火&#xff0c;那自然是 ChatGPT。 ChatGPT 由人工智能研究实验室 OpenAI 于2022年11月30日推出。上线短短5天&#xff0c;用户数量已突破100万&#xff0c;在今年2月份&#xff0c;用户数量已经突破1亿。 ChatGPT 是一个超级智能聊天机器人&#…

【java】笔试强训Day4【计算糖果、进制转换】

目录 ⛳一、单选题 1.下列与队列结构有关联的是&#xff08; &#xff09; 2.类所实现接口的修饰符不能为&#xff08; &#xff09; 3.下列关于栈叙述正确的是&#xff08; &#xff09; 4.下面关于abstract关键字描述错误的是&#xff08; …

9.0 自定义SystemUI下拉状态栏和通知栏视图(十五)之悬浮通知布局

1.前言在进行9.0的系统rom产品定制化开发中&#xff0c;在9.0中针对systemui下拉状态栏和通知栏的定制UI的工作开发中&#xff0c;原生系统的下拉状态栏和通知栏的视图UI在产品开发中会不太满足功能&#xff0c;所以根据产品需要来自定义SystemUI的下拉状态栏和通知栏功能&…

【jenkins部署】一文弄懂自动打包部署(前后台)

这里写目录标题序言软件安装jdkmaven配置maven阿里镜像以及本地库位置git安装安装jenkins插件安装环境配置创建项目配置gitee生成gitee WebHookmaven打包验证是否打包成功连接远程服务器并重启服务远程服务器生成私钥配置ssh项目配置ssh脚本vue项目打包nodejs安装下载配置环境变…

【C++进阶】位图和布隆过滤器

文章目录位图位图概念位图使用场景位图的结构构造setresettest完整代码布隆过滤器布隆过滤器概念布隆过滤器结构构造setresettest完整版代码位图 位图概念 所谓位图&#xff0c;就是用每一位来存放某种状态&#xff0c;适用于海量数据&#xff0c;数据无重复的场景。通常是用…

智能火焰与烟雾检测系统(Python+YOLOv5深度学习模型+清新界面)

摘要&#xff1a;智能火焰与烟雾检测系统用于智能日常火灾检测报警&#xff0c;利用摄像头画面实时识别火焰与烟雾&#xff0c;另外支持图片、视频火焰检测并进行结果可视化。本文详细介绍基于智能火焰与烟雾检测系统&#xff0c;在介绍算法原理的同时&#xff0c;给出Python的…

【数据结构与算法】设计循环队列

文章目录&#x1f451;前言如何设计循环队列设计循环队列整体的代码&#x1f4ef;写在最后&#x1f451;前言 &#x1f6a9;前面我们 用队列实现了一个栈 &#xff0c;用栈实现了一个队列 &#xff0c;相信大家随随便便轻松拿捏&#xff0c;而本章将带大家上点难度&#xff0c;…

【Linux】SIGCHLD信号

文章目录SIGCHLD信号SIGCHLD信号 回忆: 为了避免出现僵尸进程,父进程需要使用wait或waitpid函数等待子进程结束,父进程可以阻塞等待子进程结束,也可以非阻塞地查询的是否有子进程结束等待清理,即轮询的方式 如果采用阻塞等待:父进程阻塞就不能处理自己的工作了如果采用非阻塞等…

Python日志logging实战教程

一、什么是日志 在《网络安全之认识日志采集分析审计系统》中我们认识了日志。日志数据的核心就是日志消息或日志&#xff0c;日志消息是计算机系统、设备、软件等在某种刺激下反应生成的东西。 日志数据&#xff08;log data&#xff09;就是一条日志消息的内在含义&#xf…

第十四届蓝桥杯第三期模拟赛 【python】

第十四届蓝桥杯第三期模拟赛 【python】 文章目录第十四届蓝桥杯第三期模拟赛 【python】✨最小的十六进制&#xff08;python的16进制&#xff09;❓️问题描述答案提交&#x1f9e0;思路&#x1f5a5;︎参考答案✨Excel的列&#xff08;进制转化&#xff09;❓️问题描述答案…

串口通信(STM32演示实现)

目录 一、串行通信的概念 二、寄存器 2.1控制寄存器USART_CR1 2.2控制寄存器USART_CR2​编辑 2.3串口寄存器USART_BRR 2.4 USART_ISR 2.5USART_TDR 2.6USART_RDR​编辑 三、实现串口数据的收发 一、串行通信的概念 u通信&#xff0c;最少要有两个对象&#xff0c;一个收…

强化学习、监督学习、无监督学习是什么

1 强化学习 1.1 定义 强化学习是机器学习学习方式的一种&#xff0c;是让计算机实现从一开始完全随机的进行操作&#xff0c;通过不断试错的方式去总结出每一步的最佳行为决策&#xff0c;基于环境给予的反馈&#xff0c;去调整自己的行为决策&#xff0c;从而对未来的行为给…

什么是推挽输出,开漏输出?

这篇文章是看B站“工科男孙老师”这个视频的笔记推挽 开漏 高阻 这都是谁想出来的词&#xff1f;&#xff1f; 我觉得讲的很好&#xff0c;做一下笔记 1.什么是IO输出三态 一共有&#xff1a;高电平, 低电平&#xff0c;浮空/高阻态 三种IO态 2.推挽输出 推挽输出能够表示高、…

短链接是怎么设计的?带你入门

文章目录前言一、短链1、原理1.1 短链生成原理1.2 短链跳转原理&#xff1a;2、设计&#xff1a;2.1 短链需求2.2 考虑的问题&#xff1f;二、实践案例1、设计表&#xff1a;2、生成短链&#xff1a;前言 说到 URL 你肯定不陌生&#xff0c;浏览器输入一段 URL&#xff0c;立马…