matplotlib数据展示
目录
一、绘制直方图
1、简单直方图
2、绘制横向直方图
3、绘制堆叠直方图
4、对比直方图
二、折线图与散点图
三、绘制饼图
四、雷达图
1、简单雷达图
2、多层雷达图
五、总和
在前面的学习中,我们能够使用一些库进行数据的整合,收集,整理等,而在进行了这些操作之后,我们需要把这些整合好的数据进行更加直观的展示,比如用一些统计图来实现,而matplotlib就可以完成这个工作。
matplotlib是一个第三方库,需要使用pip命令去下载
一、绘制直方图
1、简单直方图
我们可以用matplotlib库来绘制一个基本的直方图:
import matplotlib.pyplot as plt #主要进行绘图的模块
from matplotlib import rcParams #包含了绘图时的可配置参数rcParams['font.family'] = rcParams['font.sans-serif'] = 'SimHei' #设置中文支持,是中文的黑体ax = plt.figure().add_subplot() #plt.figure()创建一个可视窗口,add_subplot() 是在窗口里面创建一个可绘画的子图(可以在一个窗口里面绘制多个子图)
ax.bar(x = (0.2 , 0.6 , 0.8 , 1.2) , height = (3 , 5 , 7 , 3.5) , width = 0.1) #ax.bar()是在子图上绘图,里面的三个参数分别是指:①每个柱子的中心位置②每个柱子的高度③每个柱子的宽度(也可以设置成不同的五个数值)ax.set_title("我的第一个直方图!") #为这个子图设置标题
plt.show() #展示出来
输出:
(注:在绘制柱状图时,程序会根据数据的大小,来控制子图的大小,默认就是宽度比两边的柱子各往左和右一点,高度比最高的柱子高一点)
2、绘制横向直方图
想要绘制横向的直方图,我们只需要把上面的代码稍加改动:
import matplotlib.pyplot as plt #主要进行绘图的模块
from matplotlib import rcParams #包含了绘图时的可配置参数rcParams['font.family'] = rcParams['font.sans-serif'] = 'SimHei'ax = plt.figure().add_subplot()
ax.barh(y = (0.2 , 0.6 , 0.8 , 1.2) , width = (3 , 5 , 7 , 3.5) , height = 0.1)#↑ 在这里bar变成了barh,x也变成了y,再把宽和高交换一下
ax.set_title("我的第一个直方图!")
plt.show()
效果:
3、绘制堆叠直方图
有时我们需要在一个柱子上显示多个数据,然后看看总和以及各个数据之间的占比,这时就需要堆叠直方图:
import matplotlib.pyplot as plt #主要进行绘图的模块
from matplotlib import rcParams #包含了绘图时的可配置参数rcParams['font.family'] = rcParams['font.sans-serif'] = 'SimHei'ax = plt.figure().add_subplot()labels = ['A' , 'B' , 'C' , 'D'] #创建了x轴上每一个柱子的标签
num1 = [5 , 10 , 7 , 12]
num2 = [6 , 5 , 12 , 10] #两组中各个柱子的高度cordx = range(len(num1)) #创建范围对象,给每个柱子创建一个位置,位置的个数就和num1中的个数一样
rects1 = ax.bar(x = cordx , height = num1 , width = 0.5 , color = "red" , label = "Dept1")
#在子图上绘制第一组数据的各个柱状图,里面的参数分别是:①每个柱子的x轴位置 ②柱子高度 ③柱子宽度 ④柱子颜色 ⑤标签
rects2 = ax.bar(x = cordx , height = num2 , width = 0.5 , color = "green" , label = "Dept2" , bottom = num1)
#和上面一样,多了一个bottom,是设置第二组柱子的底部的起始位置,我们设置在了num1的上方,实现了堆叠效果
#上面的参数中“label”标签是应用在了一会图片的右上角ax.set_ylim(0 , 50) #设置y轴范围
ax.set_ylabel("Profit") #设置y轴的标签
ax.set_xticks(cordx) #设置x轴的刻度
ax.set_xticklabels(labels) #设置各个刻度的标签
ax.set_xlabel("In year 2025") #设置x轴的标签
ax.set_title("My Data") #设置子图的标题
ax.legend() #显示图例,就是rects1和2里面的label(一会看图片的右上角)
plt.show() #展示
效果:
4、对比直方图
当我们在一个类中有多组数据时,并且需要比较直观的比较,就需要对比直方图:
import matplotlib.pyplot as plt #主要进行绘图的模块
from matplotlib import rcParams #包含了绘图时的可配置参数rcParams['font.family'] = rcParams['font.sans-serif'] = 'SimHei'ax = plt.figure(figsize=(10,5)).add_subplot() #创建新的窗口和子图,这里给窗口设置了大小ax.set_ylim(0,120)
ax.set_xlim(0,60) #设置了x和y轴的范围x1 = [5 , 15 , 25 , 35 , 45]
x2 = [8 , 18 , 28 , 38 , 48]
x3 = [11 , 21 , 31 , 41 , 51]
#以上三组是每一个每一个柱子中心点的横坐标
#如果出现了各个柱子之间重叠的情况,可以调整这三个组之间的间距
#下面设置柱子宽度的时候,如果宽度和x之间的距离相同,每一个组之间的柱子就没有缝隙y1 = [25 , 29 , 66 , 24 , 67]
y2 = [66 , 25 , 87 , 57 , 28]
y3 = [12 , 56 , 90 , 68 , 35]
#以上三组是每一个柱子的数据rects1 = ax.bar(x1 , y1 , facecolor = "red" , width = 3 , label = 'A')
rects2 = ax.bar(x2 , y2 , facecolor = "green" , width = 3 , label = 'B')
rects3 = ax.bar(x3 , y3 , facecolor = "blue" , width = 3 , label = 'C')
#以上三组进行了绘图,参数分别是指:柱子的中心坐标,柱子高度,柱子颜色,柱子宽度,以及柱子的图例名称ax.set_xticks(x2) #让x2,也就是每一组中中间的那个柱子和x轴坐标对其
ax.set_xticklabels(('A1' , 'A2' , 'A3' , 'A4' , 'A5')) #每一组的标签ax.legend() #显示图例def label(ax , rects): #给每一个柱子上添加数字for rect in rects : #遍历每一个柱子height = rect.get_height() #获取柱子的高度ax.text(rect.get_x() - 0.05 + rect.get_width()/2.0 , height + 5 , str(height) , rotation = 90)#ax.text()在子图中添加文本,第一个参数是计算每一个文本的x轴位置,在起始位置+每一个柱子宽度的1/2再-0.05,即在每一个柱子的中心偏左#下一个就是文本的y轴位置,即在每一个柱子的高度上加5#第三个就是输入的内容,即每一个柱子的高度的具体字符#最后一个就是把文字旋转90度label(ax , rects1)
label(ax , rects2)
label(ax , rects3)
#调用三次label函数,进行赋值plt.show()
效果:
二、折线图与散点图
当我们有大量数据或者想要观察趋势的时候,我们就可以绘制一个散点图或者折线图:
import matplotlib.pyplot as plt #主要进行绘图的模块
from matplotlib import rcParams #包含了绘图时的可配置参数
import math , randomdef drawPlotPro(ax) :xs = [i / 100 for i in range(1500)] #生成一个列表,里面包含1500个数据点,且每一个数据点是i/100ys = [10 * math.sin(x) for x in xs] #对于列表xs中的每一个数据,我们进行10 * math.sin(x),来生成一个正弦波#上面这两个分别就是每一个点的x和y坐标ax.plot(xs , ys , "red" , label = "A") #使用ax.plot绘制折线图,前两个是每一个点的xy坐标,第二个是颜色,然后是图例标签ys = list(range(-18 , 18)) #生成一个列表,里面是从-18到17的序列random.shuffle(ys) #打乱他ax.scatter(range(16) , ys[:16] , c = "blue") #ax.scatter()绘制散点图,参数第一个是x轴坐标,第二个是y轴坐标,第三个是颜色ax.plot(range(16) , ys[:16] , "blue" , label = "B") #ax.plot()绘制折线图ax.legend() #显示图例ax.set_xticks(range(16)) #x轴坐标是0,1,2...15的地方加刻度ax.set_xticklabels(range(16)) #刻度的标签ax = plt.figure(figsize=(10,4) , dpi=100).add_subplot() #视窗的大小,以及分辨率(清晰度)
drawPlotPro(ax) #调用ax
plt.show()
效果:
三、绘制饼图
import matplotlib.pyplot as plt #主要进行绘图的模块
from matplotlib import rcParams #包含了绘图时的可配置参数def DrawPiePro(ax) :lbs = ('A' , 'B' , 'C' , 'D') #饼图各个块的标签sectors = [25 , 20 , 50 , 5] #每一块的占比expl = [0 , 0.1 , 0 , 0] #每一块的凸显程度ax.pie(x = sectors , labels = lbs , explode = expl , autopct = '%.2f' , shadow = True , labeldistance = 1.1 , pctdistance = 0.6 , startangle = 90)#ax.pie()绘制饼图,参数分别是:每一块的占比,凸显程度,显示百分比,保留两位小数,增加阴影效果,标签和饼图的距离(大于1就是向外),百分比标签和饼图的距离,以及绘制的起点位置,90就是正上方ax.set_title("pie sample") #饼图标题ax = plt.figure().add_subplot() #创建窗口和子图
DrawPiePro(ax)
plt.show()
效果:
四、雷达图
1、简单雷达图
import matplotlib.pyplot as plt #主要进行绘图的模块
from matplotlib import rcParams #处理汉字用def DrawRadar(ax) :pi = 3.1415926labels = ["语文" , "数学" , "英语" , "物理" , "化学" , "地理"] #六个属性的名称attrNum = len(labels) #属性的种类,也就是属性的个数,此处是6data = [120 , 110 , 110 , 70 , 88 , 90] #各个属性的数值angles = [2 * pi * i / attrNum for i in range(attrNum)] #以弧度为单位的六个属性对应的六个半径的角度angles2 = [x * 180 / pi for x in angles] #这个是角度ax.set_ylim(0 , 150) #半径的范围ax.set_thetagrids(angles2 , labels , fontproperties = "SimHei") #绘制这六个半径,用角度制,以及各个属性的名称,和字体ax.fill(angles , data , facecolor = 'g' , alpha = 0.25) #把围起来的区域填充,用data数据,颜色是绿色,并设置了透明度rcParams['font.family'] = rcParams['font.sans-serif'] = 'SimHei' #处理汉字
ax = plt.figure().add_subplot(projection = "polar") #生成视窗和极坐标的子图DrawRadar(ax)
plt.show()
效果:
2、多层雷达图
import matplotlib.pyplot as plt # 主要进行绘图的模块
from matplotlib import rcParams # 处理汉字用rcParams['font.family'] = rcParams['font.sans-serif'] = 'SimHei' # 处理汉字
pi = 3.1415926
names = ['张三', '李四', '王五']
labels = ["语文", "数学", "英语", "物理", "化学", "地理"] # 六个属性的名称
attrNum = len(labels) # 属性的种类,也就是属性的个数,此处是6
data = [[120, 125, 100], [130, 140, 130], [110, 100, 120], [70, 80, 90], [67, 79, 87],[90, 100, 97]] # 各个属性的数值,第一个就是三个人各自的语文成绩angles = [2 * pi * i / attrNum for i in range(attrNum)] # 以弧度为单位的六个属性对应的六个半径的角度
angles2 = [x * 180 / pi for x in angles] # 这个是角度ax = plt.figure().add_subplot(projection="polar") # 生成视窗和极坐标的子图
ax.fill(angles, data, alpha=0.25) # 把围起来的区域填充,用data数据,并设置了透明度
ax.set_ylim(0, 150) # 半径的范围
ax.set_thetagrids(angles2, labels) # 绘制这六个半径,用角度制,以及各个属性的名称ax.legend(names, loc=(0.95, 0.9)) #添加图例,以及位置plt.show()
效果:
五、总和
在我们能绘制如此之多的图形后,我们可能需要在一个面板上就看到所有的数据们也就是把这些数据放在一个窗口上:
fig = plt.figure(figsize = (8,8)) #创建视窗ax = fig.add_subplot(2,2,1) #添加子图1,即饼图,2,2,1的意思是划分处一个2x2的子图,并放在第一处(就是左上角)
DrawPiePro(ax)ax = fig.add_subplot(2,2,2 , projection = "polar") #添加子图2
DrawRadar(ax)ax = plt.subplot2grid((2,2) , (1,0) , colspan=2) #第二个参数1,0是指第一行,第零列,就是左下角的位置,第三个参数就是这个子图跨越两列
drawPlotPro(ax)plt.figtext(0.05 , 0.05 , 'subplot sample') #在图形窗口添加文本plt.show()
当然这个要结合上面的各个我们自己创建的函数,我们把他们结合起来:
import matplotlib.pyplot as plt # 主要进行绘图的模块
from matplotlib import rcParams # 处理汉字用
import math, randomdef drawPlotPro(ax):xs = [i / 100 for i in range(1500)] # 生成一个列表,里面包含1500个数据点,且每一个数据点是i/100ys = [10 * math.sin(x) for x in xs] # 对于列表xs中的每一个数据,我们进行10 * math.sin(x),来生成一个正弦波# 上面这两个分别就是每一个点的x和y坐标ax.plot(xs, ys, "red", label="A") # 使用ax.plot绘制折线图,前两个是每一个点的xy坐标,第二个是颜色,然后是图例标签ys = list(range(-18, 18)) # 生成一个列表,里面是从-18到17的序列random.shuffle(ys) # 打乱他ax.scatter(range(16), ys[:16], c="blue") # ax.scatter()绘制散点图,参数第一个是x轴坐标,第二个是y轴坐标,第三个是颜色ax.plot(range(16), ys[:16], "blue", label="B") # ax.plot()绘制折线图ax.legend() # 显示图例ax.set_xticks(range(16)) # x轴坐标是0,1,2...15的地方加刻度ax.set_xticklabels(range(16)) # 刻度的标签#-------------------------------------------------------------------------------def DrawPiePro(ax) :lbs = ('A' , 'B' , 'C' , 'D') #饼图各个块的标签sectors = [25 , 20 , 50 , 5] #每一块的占比expl = [0 , 0.1 , 0 , 0] #每一块的凸显程度ax.pie(x = sectors , labels = lbs , explode = expl , autopct = '%.2f' , shadow = True , labeldistance = 1.1 , pctdistance = 0.6 , startangle = 90)#ax.pie()绘制饼图,参数分别是:每一块的占比,凸显程度,显示百分比,保留两位小数,增加阴影效果,标签和饼图的距离(大于1就是向外),百分比标签和饼图的距离,以及绘制的起点位置,90就是正上方ax.set_title("pie sample") #饼图标题#-------------------------------------------------------------------------------def DrawRadar(ax) :pi = 3.1415926labels = ["语文" , "数学" , "英语" , "物理" , "化学" , "地理"] #六个属性的名称attrNum = len(labels) #属性的种类,也就是属性的个数,此处是6data = [120 , 110 , 110 , 70 , 88 , 90] #各个属性的数值angles = [2 * pi * i / attrNum for i in range(attrNum)] #以弧度为单位的六个属性对应的六个半径的角度angles2 = [x * 180 / pi for x in angles] #这个是角度ax.set_ylim(0 , 150) #半径的范围ax.set_thetagrids(angles2 , labels , fontproperties = "SimHei") #绘制这六个半径,用角度制,以及各个属性的名称,和字体ax.fill(angles , data , facecolor = 'g' , alpha = 0.25) #把围起来的区域填充,用data数据,颜色是绿色,并设置了透明度#-------------------------------------------------------------------------------fig = plt.figure(figsize = (8,8)) #创建视窗ax = fig.add_subplot(2,2,1) #添加子图1,即饼图,2,2,1的意思是划分处一个2x2的子图,并放在第一处(就是左上角)
DrawPiePro(ax)ax = fig.add_subplot(2,2,2 , projection = "polar") #添加子图2
DrawRadar(ax)ax = plt.subplot2grid((2,2) , (1,0) , colspan=2) #第二个参数1,0是指第一行,第零列,就是左下角的位置,第三个参数就是这个子图跨越两列
drawPlotPro(ax)plt.figtext(0.05 , 0.05 , 'subplot sample') #在图形窗口添加文本plt.show()
效果:
以上就是matplotlib数据展示的全部内容:)
相关文章:
matplotlib数据展示
目录 一、绘制直方图 1、简单直方图 2、绘制横向直方图 3、绘制堆叠直方图 4、对比直方图 二、折线图与散点图 三、绘制饼图 四、雷达图 1、简单雷达图 2、多层雷达图 五、总和 在前面的学习中,我们能够使用一些库进行数据的整合,收集&#x…...
三维激光测量助力企业检测效率提升3倍
智能制造与数字化浪潮席卷下,三维扫描技术已成为工业检测领域不可或缺的工具。面对传统检测手段的精度瓶颈与效率局限,三维扫描仪,以毫米级精度、非接触式测量与超高速扫描三大核心优势,为汽车制造、航空航天、消费电子等行业的品…...
基于RISC-V内核的嵌入式系统在机器人关节控制中的应用研究
摘要 随着机器人技术的飞速发展,关节控制作为机器人系统中的关键环节,对机器人的性能和稳定性起着至关重要的作用。传统的关节控制多采用基于ARM或DSP的嵌入式系统,但RISC-V架构的兴起为机器人关节控制提供了新的选择。本文结合多个基于RISC…...
斯库拉集团介绍
斯库拉集团有限公司坐落于世界自由贸易圣地,国际金融服务中心英属维京群岛BVI. 旗下有香港斯库拉集团(香港主板 上市公司),斯库拉环球国际控股集团 (香港主板上市企业),斯库拉国际贸易 有限公司(斯库拉集团有限公司),新加坡斯库拉集团有限公司,德国斯库拉集团有限公司,新西…...
运用instanceof判断Animal a是否为Dog类和是否为cat类
//Animal类(狗和猫的父类) public class Animal {private String color;private int age;public Animal(String color, int age) {this.color color;this.age age;}public Animal() {}public String getColor() {return color;}public void setColor…...
蓝桥杯嵌入式考前模块总结
一.RTC 使用RTC直接再cubeMX中配置启动时钟和日历 如第六届省赛 想要让RTC的秒每隔一秒递增1需要在时钟树界面观察RTC的主频 由于RTC时钟主频为32KHZ将异步预分频计数器的值设为31,将同步预分频计数器的值设为999这样就可以将RTC的时钟信号分频为1HZ达到1秒自增的…...
《汽车电器与电子技术》实验报告
SRS系统结构原理与故障检测诊断 车辆上为什么要配安全气囊?——解析汽车被动安全的关键防线 一、安全气囊的核心作用:应对高速碰撞的“救命缓冲垫” 车辆在高速碰撞时(如正面碰撞、侧面碰撞),人体会因惯性以极高速度…...
小刚说C语言刷题——第22讲 二维数组
昨天我们讲了一维数组,今天我们来讲二维数组。 1.定义 二维数组是指在数组名后跟两个方括号的数组。 2.语法格式 数据类型 数组名[下标][下标] 例如:int a[5][9];//表示5行9列的数组 3.访问二维数组元素 格式:数组名[行坐标][列坐标]…...
04--网络属性设置与多路复用
一、TCP可靠性分析 二、 scoket 属性设置 1、socket 属性设置表 NAMEgetsockopt, setsockopt - get and set options on sockets获取 和 设置 套接字属性 SYNOPSIS#include <sys/types.h> /* See NOTES */#include <sys/socket.h>int getsockopt(int so…...
AI大模型从0到1记录学习 day17
第 2 章 数据结构与算法基础 2.1 数据结构基础 2.1.1 什么是数据结构 数据结构是为了高效访问数据而设计出的一种数据的组织和存储方式。更具体的说,一个数据结构包含一个数据元素的集合、数据元素之间的关系以及访问和操作数据的方法。 像前面我们接触到的list、se…...
scanf函数功能与使用详解
【DeepSeek提问】 解释一下下面这段话: 函数scanf()是从标准输入流 stdin (标准输入设备, 一般指键盘)中读内容的通用子程序,可以按说明的格式读入多个字符,并保存在对应地址的变量中。 scanf函数返回成功读入的数据项数…...
使用Python从零开始构建端到端文本到图像 Transformer大模型
简介:通过特征向量从文本生成图像 回顾:多模态 Transformer 在使用Python从零实现一个端到端多模态 Transformer大模型中,我们调整了字符级 Transformer 以处理图像(通过 ResNet 特征)和文本提示,用于视觉…...
NDT和ICP构建点云地图 |【点云建图、Ubuntu、ROS】
### 本博客记录学习NDT,ICP构建点云地图的实验过程,参考的以下两篇博客: 无人驾驶汽车系统入门(十三)——正态分布变换(NDT)配准与无人车定位_settransformationepsilon-CSDN博客 PCL中点云配…...
第 1 篇✅ 用 AI 编程之前,你得先搞清楚你和 AI 是啥关系
程序员不是被替代的,是要学会主导 AI 的人 🧠 那些把 AI 当兄弟的程序员,后来都踩了坑 最近的一次线下开发者聚会,我们聊到“AI 编程”,现场笑声不断,也点醒了不少人。 有个朋友说: “我让 AI 写一个 Web 服务,它写得飞快,我一激动就上线了,结果上线后一堆坑,日志…...
Android Jetpack Compose 高级开发核心技术
Android Compose 高级技术总结 1. 性能优化 1.1 状态管理优化 状态提升原则:将状态提升到共享的最近共同父组件derivedStateOf:当需要基于多个状态计算派生状态时使用 val scrollState rememberScrollState() val showButton by remember {derivedS…...
Go小技巧易错点100例(二十五)
本期分享: 1. 使用atomic包实现无锁并发控制 2. Gin框架的中间件机制 3. 搞懂nil切片和空切片 使用atomic包实现无锁并发控制 sync/atomic包提供了原子操作,用于在多goroutine环境下安全地操作共享变量,避免使用锁带来的性能开销。 代码…...
如何用海伦公式快速判断点在直线的哪一侧
一、海伦公式的定义与推导 1. 海伦公式的定义 海伦公式(Heron’s Formula)是用于计算三角形面积的一种方法,适用于已知三角形三边长度的情况。公式如下: S s ( s − a ) ( s − b ) ( s − c ) S \sqrt{s(s - a)(s - b)(s - c…...
【异常处理】Clion IDE中cmake时头文件找不到 头文件飘红
如图所示是我的clion项目目录 我自定义的data_structure.h和func_declaration.h在unit_test.c中无法检索到 cmakelists.txt配置文件如下所示: cmake_minimum_required(VERSION 3.30) project(noc C) #设置头文件的目录 include_directories(${CMAKE_SOURCE_DIR}/…...
自动驾驶技术关键技术梳理
一、硬件 1、 传感器系统设计主要注意以下几个问题: 1.时间同步 一般包括多传感器之间时钟同源、帧同步触发的问题。首先要解决时钟同源问题,然后为了帧同步触发,可以让所有传感器整秒触发。常用GPS(最多分2路)给激光雷…...
MySQL索引介绍
索引的定义 扇区:磁盘存储的最小单位,扇区一般大小为512Byte。磁盘块:文件系统与磁盘交互的的最小单位(计算机系统读写磁盘的最小单位),一个磁盘块由连续几个(2^n)扇区组成…...
2025认证杯一阶段各题需要使用的模型或算法(冲刺阶段)
A题(小行星轨迹预测) 问题一:三角测量法、最小二乘法、空间几何算法、最优化方法 问题二:Gauss/Laplace轨道确定方法、差分校正法、数值积分算法(如Runge-Kutta法)、卡尔曼滤波器 B题(谣言在…...
每天学一个 Linux 命令(13):touch
Linux 文件管理命令:touch touch 是 Linux 中一个简单但高频使用的命令,主要用于创建空文件或修改文件的时间戳(访问时间、修改时间)。它是文件管理和脚本操作的实用工具。 1. 命令作用 创建空文件:快速生成一个或多个空白文件。更新时间戳:修改文件的访问时间(Access …...
Flutter常用组件实践
Flutter常用组件实践 1、MaterialApp 和 Center(组件居中)2、Scaffold3、Container(容器)4、BoxDecoration(装饰器)5、Column(纵向布局)及Icon(图标)6、Column/Row(横向/横向布局)+CloseButton/BackButton/IconButton(简单按钮)7、Expanded和Flexible8、Stack和Po…...
Python 实现最小插件框架
文章目录 Python 实现最小插件框架1. 基础实现项目结构plugin_base.py - 插件基类plugins/hello.py - 示例插件1plugins/goodbye.py - 示例插件2main.py - 主程序 2. 更高级的特性扩展2.1 插件配置支持2.2 插件依赖管理2.3 插件热加载 3. 使用 setuptools 的入口点发现插件3.1 …...
AUTOSAR_SWS_MemoryDriver图解
AUTOSAR 存储驱动程序(Memory Driver)详解 AUTOSAR存储驱动规范 - 技术解析与架构详解 目录 1. 概述2. Memory Driver架构设计 2.1 整体架构 3. Memory Driver核心组件4. 作业管理5. Memory Driver错误处理6. 时序流程7. 配置与设置8. 总结 1. 概述 A…...
AI结合VBA提升EXCEL办公效率尝试
文章目录 前言一、开始VBA编程二、主要代码三、添加到所有EXCEL四、运行效果五、AI扩展 前言 EXCEL右击菜单添加一个选项,点击执行自己逻辑的功能。 然后让DeepSeek帮我把我的想法生成VBA代码 一、开始VBA编程 我的excel主菜单没有’开发工具‘ 选项,…...
Python中NumPy的索引和切片
在数据科学和科学计算领域,NumPy是一个功能强大且广泛使用的Python库。它提供了高效的多维数组对象以及丰富的数组操作函数,其中索引和切片是NumPy的核心功能之一。通过灵活运用索引和切片操作,我们可以轻松访问和操作数组中的元素࿰…...
普通通话CSFB方式(2g/3g)
一、CSFB的触发条件 当模块(或手机)驻留在 4G LTE网络 时,若发生以下事件,会触发CSFB流程: 主叫场景:用户主动拨打电话。被叫场景:接收到来电(MT Call)。紧急呼叫&…...
daily routines 日常生活
总结 🛏 起床相关(Waking Up) 动作常用表达示例句子醒来wake upI usually wake up around 6:30.起床(离床)get up / get out of bedI got out of bed at 6:45.赖床stay in bed / lay thereI stayed in bed for another 10 minutes.关闭闹钟turn off the alarm / hit snoo…...
系分论文《论面向服务开发方法在设备租赁行业的应用》
系统分析师论文系列 【摘要】 2022年5月,我司承接某工程机械租赁企业"智能租赁运营管理平台"建设项目,我作为系统分析师主导系统架构设计。该项目需整合8大类2000余台设备资产,覆盖全国15个区域运营中心与300家代理商,实…...
深度解析python生成器和关键字yield
一、生成器概述 生成器(Generator)是Python中用于创建迭代器的工具,通过yield关键字实现。与普通函数不同,生成器函数返回的是迭代器对象,具有以下核心特性: 内存效率:只在需要时生成值&#x…...
蓝桥杯大模板
init.c void System_Init() {P0 0x00; //关闭蜂鸣器和继电器P2 P2 & 0x1f | 0xa0;P2 & 0x1f;P0 0x00; //关闭LEDP2 P2 & 0x1f | 0x80;P2 & 0x1f; } led.c #include <LED.H>idata unsigned char temp_1 0x00; idata unsigned char temp_old…...
Python装饰器的基本使用详解
各类资料学习下载合集 https://pan.quark.cn/s/8c91ccb5a474 装饰器是Python中的一个强大且灵活的特性,它允许我们在不修改函数代码的情况下为其添加额外功能。装饰器广泛应用于日志记录、性能测试、权限验证等场景。本文将详细介绍装饰器的基本使用&…...
5Why分析法
1. 基本概念 5Why分析法是一种通过连续追问"为什么"来探究问题根本原因的思考工具,由丰田生产方式创始人丰田喜一郎提出。其核心思想是:通过至少5次连续的"为什么"追问,穿透表面现象,直达问题本质。 2. 实施…...
AI Agent入门指南
图片来源网络 一、开箱暴击:你以为的"智障音箱",其实是赛博世界的007 1.1 从人工智障到智能叛逃:Agent进化史堪比《甄嬛传》 青铜时代(2006-2015) “小娜同学,关灯” “抱歉&…...
华为机试—最大最小路
题目 对于给定的无向无根树,第 i 个节点上有一个权值 wi 。我们定义一条简单路径是好的,当且仅当:路径上的点的点权最小值小于等于 a ,路径上的点的点权最大值大于等于 b 。 保证给定的 a<b,你需要计算有多少条简…...
java之多线程
目录 创建多线程的三种创建方式 常用的成员方法 守护线程 多线程的声明周期 编辑 同步代码块编辑 同步方法 死锁 等待唤醒机制(线程协调) 线程池 创建多线程的三种创建方式 继承 Thread 类 通过继承 Thread 类并重写 run() 方法创建线程。 …...
php伪协议
PHP 伪协议(PHP Stream Wrapper) PHP 的伪协议(Protocol Wrapper)是一种机制,允许开发者通过统一的文件访问函数(如 file_get_contents、fopen、include 等)访问不同类型的数据源,包…...
六、测试分类
设计测试用例 万能公式:功能测试性能测试界面测试兼容性测试安全性测试易用性测试 弱网测试:fiddler上行速率和下行速率 安装卸载测试 在工作中: 1.基于需求文档来设计测试用例(粗粒度) 输入字段长度为6~15位 功…...
【AM2634】启动和调试
目录 【AM2634】启动和调试1. 上电流程1.1 BootFlow and Bootloader1.2 Rom Code1.2.1 功能介绍1.2.2 模式选择1.2.2.1 QSPI Boot1.2.2.2 UART Boot1.2.2.3 Dev Boot 1.3 SBL1.3.1 文件构成1.3.2 文件构建1.3.3 appimage解析和core启动流程 1.4 Appimage1.4.1 RPRC文件构成1.4.…...
鲁大师绿色版,纯净无广告
鲁大师是我们常用的硬件跑分软件,可以非常准确的识别电脑硬件,对电脑性能进行评估 但他的流氓行为:广告弹窗,捆绑下载其他软件,疯狂的吃硬件性能,无法卸载等因素,又使我们大家既享用又不敢用 我为大家整理了一款纯净的绿色版鲁大师 主要实现了以下功能: 01屏蔽了…...
Python数组(array)学习之旅:数据结构的奇妙冒险
Python数组学习之旅:数据结构的奇妙冒险 第一天:初识数组的惊喜 阳光透过窗帘缝隙洒进李明的房间,照亮了他桌上摊开的笔记本和笔记本电脑。作为一名刚刚转行的金融分析师,李明已经坚持学习Python编程一个月了。他的眼睛因为昨晚熬夜编程而微微发红,但脸上却挂着期待的微…...
spring cloud微服务API网关详解及各种解决方案详解
微服务API网关详解 1. 核心概念 定义:API网关作为微服务的统一入口,负责请求路由、认证、限流、监控等功能,简化客户端与后端服务的交互。核心功能: 路由与转发:将请求分发到对应服务。协议转换:HTTP/HTTP…...
工程师 - 场效应管分类
What Are the Different Types of FETs? Pulse Octopart Staff Jul 31, 2021 Field effect transistors (FETs) are today’s workhorses for digital logic, but they enjoy plenty of applications outside of digital integrated circuits, everything from motor driver…...
asm汇编源代码之按键处理相关函数
提供5个子程序: 1. 发送按键 sendkey 2. 检测是否有按键 testkey 3. 读取按键 getkey 4. 判断键盘缓冲区是否为空 bufempty 5. 判断键盘缓冲区是否已满 buffull 具体功能及参数描述如下 sendkey proc far ; axcharcode testkey proc far ; out: ; zf1 buff empt…...
程序化广告行业(78/89):多因素交织下的行业剖析与展望
程序化广告行业(78/89):多因素交织下的行业剖析与展望 在程序化广告这片充满活力又不断变化的领域,持续学习和知识共享是我们紧跟潮流、实现突破的关键。一直以来,我都渴望能与大家一同探索这个行业的奥秘,…...
如何使用MaxScript+dotNet在UI中显示图像?
在MaxScript中,你可以使用dotNetControl来显示图像。以下是一个简单的示例脚本,它创建一个UI窗口并在其中显示logo.jpg图像: rollout logoRollout "Logo Display" width:300 height:300 (dotNetControl logoPicture "System.Windows.Forms.PictureBox"…...
BitMap和RoaringBitmap:极致高效的大数据结构
目录 1、引言 2、BitMap:基础 2.1、核心原理 2.2、BitMap的优势 2.3、BitMap的局限性 3、RoaringBitmap:进化 3.1、分段策略 3.2、三种容器类型 3.2.1. ArrayContainer(数组容器) 3.2.2. BitMapContainer(位图容器) 3.2.3. RunContainer(行程容器) 3.3、行…...
Java高性能并发利器-VarHandle
1. 什么是 VarHandle? VarHandle 是 Java 9 引入的类,用于对变量(对象字段、数组元素、静态变量等)进行低级别、高性能的原子操作(如 CAS、原子读写)。它是 java.util.concurrent.atomic 和 sun.misc.…...
关于读完《毛泽东选集》的一些思考迭代
看完毛选前四卷,从革命初期一直讲到抗战胜利,共75.8W字,花费67个小时读完。从1925年发表的“中国社会各阶级的分析”,跨越100年,通过67个小时向主席学习到: 实事求是 从实践中来再到实践中去 用辩证与发展…...