Python----matplotlib库

目录

plt库的字体:

plt的操作绘图函数:

plt.figure(figsize=None, facecolor=None):

plt.subplot(nrows, ncols, plot_number):

plt.axes(rect):

plt.subplots_adjust():

plt的读取和显示相关函数:

plt库的基础图表函数:

plt库的坐标轴:

plt库的区域填充函数

举例:

阻尼衰减曲线坐标图:

霍兰德人格分析雷达图:


matplotlib 是提供数据绘图功能的第三方库,其pyplot 子库主要用于实现各种数据展示的图
形绘制。

import matplotlib.pyplot as plt

plt库的字体:
字体名称字体英文表示
宋体SimSun
黑体SimHei
楷体KaiTi
微软雅黑Microsoft YaHei
隶书LiSu
仿宋FangSong
幼圆YouYuan
华文宋体STSong
华文黑体STHeiti
苹果丽中黑Apple Ligothic Medium

为了正确显示中文字体,要做如下设置:

>>> import matplotlib.pyplot as plt
>>> plt.rcParams['font.sans-serif']=['SimHei'] #黑体
>>> plt.rcParams['axes.unicode_minus']=False # 正常显示负号

plt的操作绘图函数:

plt 子库提供了一批操作和绘图函数,每个函数代表对图像进行的一个操作,比如创建绘图区域、添加标注或者修改坐标轴等。这些函数采用plt.<b>0形式调用,其中<b>是具体函数名称。

函数描述
plt.figure(figsize=None, facecolor=None)创建一个全局绘图区域
plt.axes(rect)创建一个坐标系风格的子绘图区域
plt.subplot(nrows, ncols, plot_number)在全局绘图区域中创建一个子绘图区域
plt.subplots_adjust()调整子图区域的布局
plt.figure(figsize=None, facecolor=None):

使用figure(函数创建一个全局绘图区域,并且使它成为当前的绘图对象,figsize参数可以指定绘图区域的宽度和高度,单位为英寸。

import matplotlib.pyplot as plt# 创建一个宽度为8英寸,高度为6英寸的图形,并将背景色设置为白色
fig = plt.figure(figsize=(8, 6), facecolor='w')# 绘制一个简单的图表
plt.plot([1, 2, 3, 4], [1, 4, 2, 3])# 显示图表
plt.show()

结果:

plt.subplot(nrows, ncols, plot_number):

subplot都用于在全局绘图区域内创建子绘图区域,subplot是在绘图中创建多个图表的一种方法。它允许将多个图表组织在一个大的图表中,以便在同一个图像中进行比较和可视化不同的数据。

import matplotlib.pyplot as plt# 创建一个2x2的图像,并将第一个子图放置在左上角
plt.subplot(2, 2, 1)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.title('Subplot 1')# 创建第二个子图,放置在右上角
plt.subplot(2, 2, 2)
plt.plot([1, 2, 3, 4], [1, 8, 27, 64])
plt.title('Subplot 2')# 创建第三个子图,放置在左下角
plt.subplot(2, 2, 3)
plt.plot([1, 2, 3, 4], [1, 2, 3, 4])
plt.title('Subplot 3')# 创建第四个子图,放置在右下角
plt.subplot(2, 2, 4)
plt.plot([1, 2, 3, 4], [1, 3, 5, 7])
plt.title('Subplot 4')# 调整子图之间的间距
plt.tight_layout()# 显示图像
plt.show()

plt.axes(rect):

axes0默认创建一个subplot(111)坐标系,参数rec = [left,bottom,width,height]中四个变量的范围都为[0,1],表示坐标系与全局绘图区域的关系。

import matplotlib.pyplot as plt# 创建一个10x10的图像
plt.figure(figsize=(10, 10))# 创建一个左边界为0.1,底边界为0.2,宽度为0.8,高度为0.6的轴
ax = plt.axes([0.1, 0.2, 0.8, 0.6])# 在轴上绘制一条直线
ax.plot([0, 1], [0, 1])# 设置轴的标题和标签
ax.set_title('Custom Axes')
ax.set_xlabel('X')
ax.set_ylabel('Y')# 显示图像
plt.show()

plt.subplots_adjust():

在使用plt.subplots()创建多个子图时,子图默认是紧密排列的,可能会导致子图之间的重叠或者不美观。而plt.subplots_adjust()函数可以通过调整一些参数来改变子图的间距。

参数如下:

left:子图左边缘与画布左边缘之间的距离。
right:子图右边缘与画布右边缘之间的距离。
bottom:子图底边缘与画布底边缘之间的距离。
top:子图顶边缘与画布顶边缘之间的距离。
wspace:子图之间的水平间距。
hspace:子图之间的垂直间距。

以下例子调整了两个子图之间的间距为0.5,即为原来的一倍

import matplotlib.pyplot as plt# 创建两个子图
fig, (ax1, ax2) = plt.subplots(2, 1)# 绘制第一个子图
ax1.plot([1, 2, 3], [4, 5, 6])
ax1.set_title('Subplot 1')# 绘制第二个子图
ax2.plot([1, 2, 3], [6, 5, 4])
ax2.set_title('Subplot 2')# 调整子图间距
plt.subplots_adjust(hspace=0.5)# 显示图形
plt.show()

效果如下:


没有调整之前:

plt的读取和显示相关函数:

plt子库提供了一组读取和显示相关的函数,用于在绘图区域中增加显示内容及读入数据,如下表所示,这些函数需要与其他函数搭配使用。

操作描述
plt.legend()在绘图区域中放置绘图标签(也称图注)
plt.show()显示创建的绘图对象
plt.matshow()在窗口显示数组矩阵
plt.imshow()axes上显示图像
plt.imsave()保存数组为图像文件
plt.imread从图像文件中读取数组

plt库的基础图表函数:
操作描述
plt.plot(x,y,label,color,width)根据x,y数组绘制直/曲线
plt.boxplot(data,notch,position)绘制一个箱型图(Box-plot
plt.bar(x,height,width=0.8,bottom=None)绘制一个条形图
plt.barh(y, width,height=0.8,left=None)绘制一个横向条形图
plt.polar(theta,r)绘制极坐标图
plt.pie(data, explode)绘制饼图
plt.psd(x, NFFT=256, pad_to, Fs)绘制功率谱密度图
plt.specgram(x,NFFT=256,pad_to,F)绘制谱图
plt.cohere(x,y,NFFT=256,Fs)绘制X-Y的相关性函数
plt.scatter(x,y)绘制散点图(x,y是长度相同的序列)
plt.step(x,y,where)绘制步阶图
plt.hist(x,bins,normed)绘制直方图(x为数据,bins为柱数,normed为是否归一化)
plt.contour(X,Y,Z,N)绘制等值线
plt.vlines(x,ymin,ymax)绘制垂直线
plt.stem(x,y,linefmt,markerfmt,basefmt)绘制曲线每个点到水平轴线的垂线
plt.plot_date()绘制数据日期
plt.plotfile()根据文件数据进行图形绘制

plot()函数是用于绘制直线的最基础函数:
其常用参数如下:

•x, y:要绘制的数据点的x和y坐标。可以是列表、数组或者Series对象。
•color:曲线的颜色,可以是字符串表示的颜色名称(例如'red'、'blue')或者RGB值(例如(0.1, 0.2, 0.3))。
•linestyle:曲线的线型,可以是字符串(例如'-'、'--'、':'、'-.'等)或者自定义的虚线样式(例如(0, (5, 10))表示5个像素的实线,10个像素的空白)。
•linewidth:曲线的线宽,可以是一个浮点数。
•marker:数据点的标记样式,可以是字符串(例如'.'、'o'、's'等)或者Matplotlib支持的标记样式字符。
•markersize:数据点标记的大小,可以是一个整数。
•label:曲线的标签,用于图例中的显示。
•alpha:曲线的透明度,可以是一个0到1之间的浮点数,0表示完全透明,1表示完全不透明。
•linestyle、linewidth、marker、markersize、label等参数还可以通过关键字参数的形式传递给plot()函数。

举例:

import numpy as np
import matplotlib.pyplot as plt# 生成 x 取值范围为 [0, 2π] 的等差数列
x = np.linspace(0, 2*np.pi, 50)# 计算 sin(x) 和 cos(x) 的值
y_sin = np.sin(x)
y_cos = np.cos(x)# 绘制正弦曲线和余弦曲线
plt.plot(x, y_sin, label='sin(x)', color='blue', linewidth=2)
plt.plot(x, y_cos, label='cos(x)', color='red', linewidth=2)# 添加图例,设置标题和坐标轴标签
plt.legend()
plt.title('Sine and Cosine Curves')
plt.xlabel('x')
plt.ylabel('y')# 显示图形
plt.show()

结果

带有公式的显示可以用$ $,即$y=\sin(x)$

import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0, 2*np.pi, 50)
y = np.sin(x)plt.plot(x, y, label=r'$y=\sin(x)$')
plt.legend()
plt.xlabel('x')
plt.ylabel('y')plt.show()

marker的使用:

import numpy as np
import matplotlib.pyplot as plt# 创建一个包含10个元素的随机数数组
x = np.arange(10)
y = np.random.randn(10)# 绘制折线图,并使用不同的标记样式
plt.plot(x, y, marker='o', label='Circle')  # 使用圆形标记
plt.plot(x, y+1, marker='s', label='Square')  # 使用正方形标记
plt.plot(x, y+2, marker='*', label='Star')  # 使用星号标记
plt.plot(x, y+3, marker='^', label='Triangle')  # 使用正三角形标记plt.legend()  # 显示图例
plt.xlabel('x')
plt.ylabel('y')plt.show()

plt库的坐标轴:

plt 库有两个坐标体系,图像坐标和数据坐标

图像坐标将图像所在区域左下角视为原点,将x 方向和y方向长度设定为1。整体绘图区域有一个图像坐标,每个axes0和subplot0函数产生的子图也有属于自己的图像坐标。axes()函数参数rect 指当前产生的子区域相对于整个绘图区域的图像坐标。


数据坐标以当前绘图区域的坐标轴为参考,显示每个数据点的相对位置,这与坐标系里面标记数据点一致。

坐标轴设置函数:

函数描述
plt.axis(‘v’,’off’,’equal’,’scaled’,’tight’,’image’)获取/设置轴属性的快捷方法
plt.xlim(xmin,xmax)设置当前x轴取值范围
plt.ylim(ymin,ymax)设置当前y轴取值范围
plt.xscale()设置x轴缩放
plt.yscale()设置y轴缩放
plt.autoscale()自动缩放轴视图的数据
plt.thetagrids(angles,labels,fmt,frac)设置极坐标网格theta的位置
plt.grid(on/off)打开或者关闭坐标网格

举例:

>>> plt.plot([1,2,4],[1,2,3]) #表示在坐标点(1, 1), (2, 2), (4, 3)之间绘制一条折线
>>> plt.axis() #获得当前坐标轴范围
(1.0, 4.0, 1.0, 3.0)
>>> plt.axis([0,5,0,8]) #4个变量分别是[xmin,xmax,ymin,ymax]

自动缩放轴视图数据 

import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]plt.plot(x, y)
plt.autoscale()plt.show()

标签设置函数:

函数描述
plt.figlegend(handles,label,loc)为全局绘图区域放置图注
plt.legend()为当前坐标图放置图注
plt.xlabel(s)设置当前x轴的标签
plt.ylabel(s)设置当前y轴的标签
plt.xticks(array,’a’,’b’,’c’)设置当前x轴刻度位置的标签和值
plt.yticks(array,’a’,’b’,’c’)设置当前y轴刻度位置的标签和值
plt.clabel(cs,v)为等值线图设置标签
plt.get_figlabels()返回当前绘图区域的标签列表
plt.figtext(x,y,s,fontdic)为全局绘图区域添加文字
plt.title()设置标题
plt.suptitle()为当前绘图区域添加中心标题
plt.text(x,y,s,fontdic,withdash)为坐标图轴添加注释
plt.annotate(note,xy,xytext,xycoords,textcoords,arrawprops)用箭头在指定数据点创建一个注释或一段文本

举例

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'sans-serif'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
plt.plot([1,2,4],[1,2,3])
plt.title('坐标系标题')
plt.xlabel('时间(s)')
plt.ylabel('范围(m)')
#r表示这是一个原始字符串,\pi表示Π
plt.xticks([1,2,3,4,5],[r'$\pi/3$',r'$2\pi/3$',r'$\pi$',\r'$4\pi/3$',r'$5\pi/3$'])#设置x轴刻度,启用了latex绘制数学表达式
plt.show()

plt库的区域填充函数
函数描述
fill(x,y,color)填充多边形
fill_between(x,y1,y2,where,color)填充两条曲线围成的多边形
fill_betweenx(y,x1,x2,where,hold)填充两条水平线之间的区域
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,10,100)
y = np.cos(2*np.pi*x)*np.exp(-x)+0.8
plt.plot(x,y,color='r',label="$exp-decay$",linewidth=3)
plt.axis([0,6,0,1.8])
ix = (x>0.8) & (x<3)
plt.fill_between(x,y,0,where=ix,facecolor='grey',alpha=0.25)
plt.text(0.5*(0.8+3), 0.2, r"$\int_a^b f(x)\mathrm{d}x$",horizontalalignment='center')
plt.legend()
plt.show()

举例:
阻尼衰减曲线坐标图:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
def Draw(pcolor, nt_point, nt_text, nt_size):plt.plot(x, y, 'k', label="$exp_decay$", color=pcolor, linewidth=3, linestyle="-")plt.plot(x, z, "b--", label="$cos(x^2)$", linewidth=1)plt.xlabel('时间(s)')plt.ylabel('幅度(mV)')plt.title("阻尼衰减曲线绘制")plt.annotate('$\cos(2 \pi t) \exp(-t)$', xy=nt_point, xytext=nt_text, fontsize=nt_size,\arrowprops=dict(arrowstyle='->', connectionstyle="arc3,rad=.1"))
def Shadow(a, b):ix = (x>a) & (x<b)plt.fill_between(x,y,0,where=ix,facecolor='grey', alpha=0.25)plt.text(0.5 * (a + b), 0.2, "$\int_a^b f(x)\mathrm{d}x$", \horizontalalignment='center')
def XY_Axis(x_start, x_end, y_start, y_end):plt.xlim(x_start, x_end)plt.ylim(y_start, y_end)plt.xticks([np.pi/3, 2 * np.pi/3, 1 * np.pi, 4 * np.pi/3, 5 * np.pi/3], \['$\pi/3$', '$2\pi/3$', '$\pi$', '$4\pi/3$', '$5\pi/3$'])
x = np.linspace(0.0, 6.0, 100)
y = np.cos(2 * np.pi * x) * np.exp(-x)+0.8
z = 0.5 * np.cos(x ** 2)+0.8
note_point,note_text,note_size = (1, np.cos(2 * np.pi) * np.exp(-1)+0.8),(1, 1.4), 14
fig = plt.figure(figsize=(8, 6), facecolor="white")
plt.subplot(111)
Draw("red", note_point, note_text, note_size)
XY_Axis(0, 5, 0, 1.8)
Shadow(0.8, 3)
plt.legend()
plt.savefig('sample.JPG')
plt.show()

霍兰德人格分析雷达图:
# -- coding: utf-8 --
import numpy as np
import matplotlib.pyplot as plt
# 如果需要使用中文标签,还需添加以下代码
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体为中文黑体
# 数据
data = [[0.40, 0.32, 0.35, 0.30, 0.30, 0.88],[0.85, 0.75, 0.30, 0.25, 0.20, 0.40],[0.43, 0.89, 0.30, 0.28, 0.22, 0.30],[0.20, 0.30, 0.85, 0.45, 0.32, 0.25],[0.19, 0.22, 0.40, 0.90, 0.92, 0.28],[0.62, 0.55, 0.27, 0.25, 0.35, 0.30]]# 角度(弧度)
angles = np.linspace(0, 2*np.pi, 6, endpoint=False)# 重复第一个角度以使图像闭合
angles = np.concatenate((angles, [angles[0]]))# 职业
occupations = ['工程师', '实验员', '艺术家', '推销员', '记事员', '社会工作者', '技术员']# 绘图
fig = plt.figure()
ax = fig.add_subplot(111, polar=True)
for i in range(len(data)):# 绘制折线图ax.plot(angles, data[i]+data[i][:1], 'o-', linewidth=2, label=occupations[i])# 填充颜色ax.fill(angles, data[i]+data[i][:1], alpha=0.25)
# 添加坐标轴标签
ax.set_thetagrids(angles*180/np.pi, occupations)
# 添加标题
plt.title('Holland Personality Analysis', fontsize=20)
# 添加图例
plt.legend(loc='best')
# 显示图形
plt.show()

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

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

相关文章

vue和react哪种框架使用范围更广

Vue和React都是非常流行的前端JavaScript框架&#xff0c;它们各自有着广泛的应用场景和支持者。选择使用哪一个框架往往取决于特定的项目需求、开发团队的熟悉程度以及生态系统的偏好。以下是这两个框架的一些主要特点&#xff0c;以帮助比较它们的使用范围&#xff1a; React…

【数据挖掘】基于 LightGBM 的系统访问风险识别(附源码)

基于 LightGBM 的系统访问风险识别 文章目录 基于 LightGBM 的系统访问风险识别一、课题来源二、任务描述三、课题背景四、数据获取分析及说明&#xff08;1&#xff09;登录https://www.datafountain.cn并获取相关数据&#xff08;2&#xff09;数据集文件说明&#xff08;3&a…

进程和计划任务

一、什么是程序 是一组计算机能识别和执行的指令&#xff0c;运行于电子计算机上&#xff0c;满足人们某种需求的信息化工具 用于描述进程要完成的功能&#xff0c;是控制进程执行的指令集 二、进程 1.什么是进程 进程&#xff1a;正在运行中的程序&#xff0c;加载到内存…

Python 自学(三) 之序列的应用

目录 1. 序列的含义 2. 序列的索引 P80 3. 序列相加 P81 4. 序列乘法 P82 5. in 关键字 P83 6. 计算序列的最大值max()&#xff0c;最小值min()和长度len() P83 7. 列表的初始化 list() P85 8. 列表元素的添加&#xff0c;…

apache httpd多后缀解析漏洞复现

一、漏洞描述 Apache Httpd支持一个文件拥有多个后缀,不同的后缀执行不同的命令,也就是说当我们上传的文件中只要后缀名含有php,该文件就可以被解析成php文件,利用Apache httpd这个特性,就可以绕过上传文件的白名单。 该漏洞和apache版本和php版本无关,属于用户配置不当造成的解…

vc2017编译从github网站上下载的源码

以ZLmediakit为例 1.下载软件 cmakehttps://github.com/Kitware/CMake/releases/download/v3.20.5/cmake-3.20.5-windows-x86_64.zip Microsoft Visual Studio https://my.visualstudio.com/Downloads?qvisual%20studio%202017&wt.mc_ido~msft~vscom~older-downloads …

Unity DOTS中的baking(二)Baker的触发

Unity DOTS中的baking&#xff08;二&#xff09;Baker的触发 我们知道&#xff0c;当传入Baker的authoring component的值发生变化时&#xff0c;就会触发baking。不过在有些情况下&#xff0c;component所引用的对象没有变化&#xff0c;而是对象自身内部的一些属性发生了变化…

C++上位软件通过LibModbus开源库和西门子S7-1200/S7-1500/S7-200 PLC进行ModbusTcp 和ModbusRTU 通信

前言 一直以来上位软件比如C等和西门子等其他品牌PLC之间的数据交换都是大家比较头疼的问题&#xff0c;尤其是C上位软件程序员。传统的方法一般有OPC、Socket 等&#xff0c;直到LibModbus 开源库出现后这种途径对程序袁来说又有了新的选择。 Modbus简介 Modbus特点 1 &#…

书生-浦路大模型全链路开源体系

2023年&#xff0c;大模型成为热门关键词 论文链接 大模型已经成为发展通用人工智能的重要途经 模型评测过程&#xff1a;从模型到应用 全链条开源开发体系 | 数据&#xff1a; 多模态融合 万卷包含文本、图像和视频等多模态数据&#xff0c;涵盖科技、文学、媒体、教育和法…

芯课堂 | MCU之EXT

概述 本文将介绍一下华芯微特MCU的嵌套向量中断控制器&#xff08;NVIC&#xff09;与外部中断/事件控制器&#xff08;EXTI&#xff09;的使用方法等。 01.嵌套向量中断控制器&#xff08;NVIC&#xff09; NVIC的全称是Nested vectoredinterrupt controller&#xff0c;即嵌…

普中STM32-PZ6806L开发板(HAL库函数实现-温度传感器DS18B20)

简介 主芯片STM32F103ZET6, 通过引脚PG11 连接DS18B20, 读取DS18B20采集的温度数据;电路原理图 DS18B20电路图 DS18B20 与 主芯片连接引脚 其他知识 DS18B20资料 DS18B20数据手册 DS18B20 简介 单线通讯的温度传感器, 测量温度在-55℃ 到 125℃&#xff0c; 在-10C 到…

平衡二叉树,力扣

目录 前序遍历与后续遍历 题目地址&#xff1a; 题目&#xff1a; 我们直接看题解吧&#xff1a; 审题目事例提示&#xff1a; 解题方法&#xff1a; 难度分析&#xff1a; 解题方法分析&#xff1a; 解题分析&#xff1a; 解题思路&#xff1a; 代码实现&#xff1a; 补充说明…

【每日论文阅读】生成模型篇

联邦多视图合成用于元宇宙 标题: Federated Multi-View Synthesizing for Metaverse 作者: Yiyu Guo; Zhijin Qin; Xiaoming Tao; Geoffrey Ye Li 摘要: 元宇宙有望提供沉浸式娱乐、教育和商务应用。然而&#xff0c;虚拟现实&#xff08;VR&#xff09;在无线网络上的传输是…

【UEFI基础】EDK网络框架(通用函数和数据)

通用函数和数据 DPC DPC全称Deferred Procedure Call。Deferred的意思是“延迟”&#xff0c;这个DPC的作用就是注册函数&#xff0c;然后在之后的某个时刻调用&#xff0c;所以确实是有“延迟”的意思。DPC在UEFI的实现中包括两个部分。一部分是库函数DxeDpcLib&#xff0c;…

数字IC设计——数字电路基本元器件

现代数字集成电路基本由CMOS晶体管构成&#xff0c;而CMOS门电路由PMOS场效应管和NMOS场效应管以对称互补的形式组成&#xff0c;所谓“互补”&#xff0c;即利用互补型MOSFET&#xff0c;即pMOS和nMOS&#xff0c;二者成对出现构成互补电路。 这种电路具有高的电路可靠性和抗干…

Mysql show Profiles详解

1.简介 show profile 和 show profiles 命令用于展示SQL语句的资源使用情况&#xff0c;包括CPU的使用&#xff0c;CPU上下文切换&#xff0c;IO等待&#xff0c;内存使用等&#xff0c;这个命令对于分析某个SQL的性能瓶颈非常有帮助&#xff0c;借助于show profile的输出信息&…

力扣hot100 二叉树的直径

&#x1f468;‍&#x1f3eb; 题目地址 一个节点的最大直径 它左树的深度 它右树的深度 &#x1f60b; AC code /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* Tr…

[Android]RadioButton控件

RadioButton控件 RadioButton控件是单选按钮控件&#xff0c;它继承自Button控件&#xff0c;可以直接使用Button控件支持的各种属性和方法。 与普通按钮不同的是&#xff0c;RadioButton控件多了一个可以选中的功能&#xff0c;能额外指定一个android&#xff1a;checked属性…

手机视频监控客户端APP如何实现跨安卓、苹果和windows平台,并满足不同人的使用习惯

目 录 一、手机视频监控客户端的应用和发展 二、手机视频监控客户端存在的问题 三、HTML5视频监控客户端在手机上实现的方案 &#xff08;一&#xff09;HTML5及其优点 &#xff08;二&#xff09;HTML5在手机上实现视频应用功能的优势 四、手机HTML5…

【数据结构】循环队列(数组实现)

目录 一、循环队列定义 怎么使一个数组在逻辑上呈“环状”呢&#xff1f; 二、循环队列与顺序队列的差异 1、存储方式: 2、操作方式: 3、空间利用率&#xff1a; 4、循环队列判断队空的方式&#xff1a; 5、循环队列判断队满的方式 完整测试代码及注释&#xff1a; 总…