项目7 生成检测数据统计看板_第1页
项目7 生成检测数据统计看板_第2页
项目7 生成检测数据统计看板_第3页
项目7 生成检测数据统计看板_第4页
项目7 生成检测数据统计看板_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目7生成检测数据统计看板主讲:吴雪飞知识回顾项目引入项目6设计的云盘存储系统虽然实现了检测数据的安全归档,但缺乏有效的数据分析维度。项目7将构建可视化分析系统,通过数据可视化技术挖掘缺陷数据间的关联性,使质量管理人员能快速掌握缺陷分布特征。系统采用Matplotlib可视化库与Web技术结合,将建立缺陷类型与发生频次的可视化映射,为产线工艺改进提供数据支撑,实现质检数据从存储管理到智能分析的价值升级。项目描述项目7将设计一个网页版缺陷检测数据图表生成器,核心功能包括:数据解析Pandas库读取“缺陷检测数据.xlsx”文件。通过DataFrame结构精准提取“损坏、装配错误、缺失”三类缺陷记录。数据处理层运Pandas进行频次统计与数据清洗,建立结构化数据集。数据可视化可视化模块采用Matplotlib生成静态柱状图展示其各种缺陷记录的统计个数。最终在网页中显示包含缺陷分类统计、趋势分析的可视化看板。项目效果相关知识:NumPy库基本介绍NumPy是Python科学计算的核心库,提供高效的多维数组(ndarray)和矩阵运算功能,专为高性能数值计算设计。支持向量化操作、线性代数、随机数生成及傅里叶变换,底层由C语言实现,计算速度极快。在工业质检场景中,NumPy可快速处理图像数据(如像素矩阵)、执行缺陷检测的数值计算(如尺寸公差分析、强度分布统计),并与Pandas、OpenCV等库无缝协作,是进行大规模数值计算的“基石工具”。相关知识:NumPy库创建数组常用创建方式相关知识:NumPy库创建数组更多创建方式函数功能说明np.array(object,dtype=None)将Python序列转换为ndarray数组,可指定数据类型np.zeros(shape,dtype=float)创建指定形状的全0数组np.ones(shape,dtype=float)创建指定形状的全1数组np.arange([start,]stop,[step,],dtype=None)生成等差序列数组np.linspace(start,stop,num=50,endpoint=True)生成等间隔数列(可控制包含终点)np.random.rand(d0,d1,...,dn)生成[0,1)均匀分布的随机数组np.full(shape,fill_value,dtype=None)创建填充指定值的数组相关知识:NumPy库数组属性shape数组的维度,返回一个元组,表示各轴大小ndim数组的轴(维度)数量size数组元素的总数dtype数组元素的数据类型(如int64、float32)itemsize每个元素占用的字节数假设有一个3×4的数组,存储了3个缺陷的检测数据(每行代表一个缺陷,列分别为缺陷ID、长度、宽度、深度)相关知识:NumPy库数组常用方法函数描述numpy.append(arr,values,axis=None)将值添加到数组的末尾。arr:要添加值的目标数组;values:要追加的值;axis:指定沿哪个轴追加(如果为None,数组会先被展平)numpy.concatenate((a,b,...),axis=0)沿着指定的轴连接相同形状的两个或多个数组。(a,b,...):要连接的数组序列(必须是相同形状)numpy.insert(arr,obj,values,axis=None)沿指定轴在指定索引之前插入值。obj:插入位置的索引(可以是整数、列表或数组);values:要插入的值(可以是标量、数组或列表)numpy.delete(arr,obj,axis=None)删除数组指定位置的元素,并返回一个新数组。二维数组中,axis=0删除行;axis=1删除列。obj为索引,arr为数组名称numpy.where(condition[,x,y])返回元组,包含输入数组中满足条件元素的各维度索引数组。condition:布尔条件表达式;x(可选):满足条件时返回的值;y(可选):不满足条件时返回的值numpy.vstack(tup)按行拼接数组,tup:要堆叠的数组序列(元组或列表形式);返回值:堆叠后的新数组,原数组不变numpy.hstack(tup)按列拼接数组相关知识:NumPy库对缺陷检测数据数组defect_data进行如下数据操作相关知识:Pandas库基本介绍Pandas是Python数据分析的核心库,提供高效的DataFrame(二维表格)和Series(一维序列)数据结构,专为处理结构化数据(如Excel、CSV)设计。支持数据清洗、筛选、聚合、合并及可视化,无缝衔接NumPy、Matplotlib等科学计算库。在工业质检场景中,Pandas可快速解析海量检测日志,统计缺陷类型分布、批次合格率等关键指标,为质量优化提供结构化数据支撑,是进行表格数据分析的“瑞士军刀”。Pandas主要包括Series和DataFrame两种核心数据结构。这两种结构可以概括为“一维与二维的互补共生”相关知识:Pandas库Series结构一维数据结构,可视为带标签的数组。基础语法importpandasaspds=pd.Series(data=None,index=None,dtype=None,name=None,copy=False)参数说明data数据可以是列表、元组、NumPy数组、字典、标量值等;index为索引(标签),长度需与data一致,默认是0,1,2,...,n-1;dtype为数据类型(如int,float,str),自动推断时可省略;name为Series的名称(可用于某些操作,如DataFrame的列名);copy为是否复制输入数据(默认为False)。相关知识:Pandas库Series结构以缺陷检测数据为例,创建Series结构相关知识:Pandas库Series结构Series结构的基本属性相关知识:Pandas库Series结构Series结构的数据访问方式相关知识:Pandas库DataFrame结构二维表格数据结构,由行索引(index)、列标签(columns)和多列数据构成基础语法importpandasaspddf=pd.DataFrame(data=None,#数据(二维数组、字典、列表等)index=None,#行索引(默认0,1,2,...)columns=None,#列名(默认0,1,2,...)dtype=None,#数据类型copy=False#是否复制数据)相关知识:Pandas库DataFrame结构创建DataFrame常用从字典创建importpandasaspd#模拟缺陷检测数据data={'检测时间':['2023-08-01','2023-08-01','2023-08-02','2023-08-02','2023-08-03','2023-08-03','2023-08-04','2023-08-04','2023-08-05','2023-08-05'],'缺陷类型':['损坏','装配错误','缺失','损坏','划痕','装配错误','缺失','划痕','损坏','装配错误'],'产品批次':['A01','B02','C03','A01','D04','B02','C03','D04','A01','B02'],'严重程度':['高','中','低','高','中','高','低','中','紧急','中'],'生产线':['线1','线2','线1','线2','线1','线2','线1','线2','线1','线2']}df=pd.DataFrame(data)print(df)相关知识:Pandas库DataFrame结构创建DataFrame格式对齐pd.set_option('display.unicode.east_asian_width',True)pd.set_option('display.width',100)pd.set_option('display.max_columns',None)相关知识:Pandas库DataFrame结构DataFrame数据访问方式基本信息访问df.shape返回行数和列数((行,列))。df.columns返回所有列名(Index对象)。df.index返回行索引(RangeIndex或其他索引类型)。df.dtypes查看每列的数据类型。DataFrame结构DataFrame数据访问方式数据快速预览df.head(n)查看前n行数据(默认n=5)df.tail(n)查看后n行数据df.sample(n)随机抽取n行数据(默认n=1)相关知识:Pandas库DataFrame结构DataFrame数据访问方式列数据访问df['列名']/df.列名df[['列名1','列名2','列名3']]DataFrame结构DataFrame数据访问方式行数据访问(标签索引)df.loc[行标签]df.loc[[行标签1,行标签2,...]]df.loc[起始标签:结束标签]相关知识:Pandas库DataFrame结构DataFrame数据访问方式行数据访问(位置索引)df.iloc[行位置]df.iloc[[行位置1,行位置2,...]]df.iloc[起始位置:结束位置](半开区间)DataFrame结构DataFrame数据访问方式多维度交叉访问df.loc[行标签,列标签]df.iloc[行位置,列位置]相关知识:Pandas库DataFrame结构DataFrame数据常用操作数据增加pd.concat([原df,新数据df],其他参数)ignore_index设为True:创建新索引ignore_index默认为False:保留原索引相关知识:Pandas库DataFrame结构DataFrame数据常用操作数据修改DataFrame结构DataFrame数据常用操作数据查询相关知识:Pandas库DataFrame结构DataFrame数据常用操作数据分组统计DataFrame结构DataFrame数据常用操作数据删除len(x)为每个分组中的记录行数示例7.1缺陷检测数据维护实战任务描述在上述原始模拟缺陷检测数据的基础上进一步进行数据维护,具体需求为:数据筛选:找出“线2”生产线上的所有记录。数据修改:将所有“损坏”类型缺陷的严重程度改为“紧急”,输出修改后的损坏记录。数据添加:新增一列“处理状态”,所有记录默认设为“待处理”,显示前5行。数据删除:删除“缺陷类型”为“划痕”的所有记录,并统计删除后的记录数。分组统计:统计每个产品批次出现的缺陷数量。复合查询:找出“产品批次”为“A01”且“严重程度”为“高”的记录。显示最终数据。示例7.1缺陷检测数据维护实战相关知识:Pandas库数据清洗在Python数据分析中,借助Pandas库可实现高效数据清洗dropna()/fillna()处理缺失值replace()修正异常值drop_duplicates()去重通过astype()或str方法统一格式结合apply()或map()实现标准化。这些操作以DataFrame为核心,直接提升数据质量,为后续分析(如scikit-learn建模或Matplotlib可视化)奠定可靠基础。相关知识:Pandas库数据清洗读取数据文件read_excel是读取Excel文件的核心函数pd.read_excel(io,#文件路径或类文件对象(必填)sheet_name=0,#工作表名称或索引(默认第一个表)header=0,#列标题所在行(默认第0行)names=None,#自定义列名列表(替换原列名)dtype=None,#强制指定列数据类型(如{"温度记录":"float64"})parse_dates=False,#自动解析日期列(或指定列名列表)na_values=None,#定义缺失值标识(如["NA","NaN",""])engine=None#解析引擎(默认自动选择,可选"openpyxl"或"xlrd"))相关知识:Pandas库数据清洗读取数据文件相关知识:Pandas库数据清洗初步数据探索查看数据基本信息统计描述缺失值统计相关知识:Pandas库数据清洗数据清洗操作处理缺失值相关知识:Pandas库数据清洗数据清洗操作处理异常值通过调用apply()函数,将“温度记录”列的每个数据应用到lambda()自定义函数,该自定义函数的主要功能是通过简洁分支结构将大于100的数据替换成100,否则保持原数据不变。思考:1.当前代码只处理了大于100的情况,未处理下限(如x<0)。若需同时限制下限,应如何修改代码?2.对于大数据量而言,apply()函数可能性能较慢,若使用向量化操作,如前面提到的numpy.where()方法,应如何修改代码?相关知识:Pandas库数据清洗数据清洗操作处理重复数据标准化分类数据标准化时间格式相关知识:Pandas库数据清洗数据清洗操作清洗后验证保存清洗结果相关知识:Matplotlib库基本介绍Matplotlib是Python最基础的数据可视化库,支持生成静态、动态及交互式图表。通过简洁的API接口,用户可快速绘制折线图、柱状图、散点图等,可灵活调整图表样式(标题、轴标签、颜色、图例),并能将数据分布、趋势和异常值直观呈现。结合Pandas数据处理能力,可高效支持工业检测、统计分析等场景。相关知识:Matplotlib库折线图折线图展示数据随时间或其他连续变量的变化趋势,如销售额月度增长、温度日变化等,可以直观呈现趋势波动,识别周期性或异常波动点。语法格式相关知识:Matplotlib库折线图以绘制缺陷数量随时间变化趋势的折线图为例思路分析x轴是检测日期y轴是缺陷数量结论得出按日期分组的缺陷数量(Series结构)即可每日缺陷数量即为每日记录行数通过Series结构.index获取日期作为x轴数据通过Series结构.values获取缺陷数量作为y轴数据注意:日期需要提取“月-日”df['检测时间'].dt.strftime('%m-%d')相关知识:Matplotlib库折线图以绘制缺陷数量随时间变化趋势的折线图为例相关知识:Matplotlib库柱状图柱状图对比不同类别的数值差异,如产品销量排名、地区用户数量比较。通过高度差异快速定位优势或劣势类别,支持决策优化。语法格式相关知识:Matplotlib库柱状图以绘制各缺陷类型出现频率的柱状图为例思路分析理解原始数据结构找到DataFrame中“缺陷类型”列明确统计目标每种缺陷类型出现了多少次

例如:划痕-15次,裂纹-8次,变形-5次选择统计方法value_counts():最直接的方法,专门用于统计频次,返回Series结构groupby().size():分组后统计每组大小相关知识:Matplotlib库柱状图以绘制各缺陷类型出现频率的柱状图为例自定义颜色可通过复制多个相同的十六进制颜色值(如黑色“#000000”),再通过单击颜色值前面的颜色预览框,可调出颜色选择器进行颜色的选择,这是vscode的内置功能。相关知识:Matplotlib库饼图饼图显示整体中各部分的占比关系,如市场份额分配、成本构成分析。强调比例分布,突出主要贡献或消耗来源。语法格式相关知识:Matplotlib库饼图以绘制各种缺陷严重程度占比饼图为例思路分析数据形式x必须为分类数据,可求和x可为原始分类数据列,但需先用.value_counts()统计频次x亦可为已汇总的数值序列pd.Series([3,2,1],index=['高','中','低'])统计目标“严重程度”列每个严重程度出现的次数然后计算它们在总缺陷中的占比最后用饼图直观展示为什么先统计频次再计算占比?plt.pie()会自动根据输入值计算比例。相关知识:Matplotlib库饼图以绘制各种缺陷严重程度占比饼图为例相关知识:Matplotlib库箱线图箱线图通常用于比较不同组/类别的数据分布特征(中位数、四分位数、异常值),如测试结果稳定性评估。其核心价值在于揭示数据集中趋势和离散程度,辅助异常检测。plt绘制箱线图的x数据构建较为复杂,这里介绍Seaborn库绘制箱线图的方法Seaborn也是基于Matplotlib的高级Python数据可视化库,专注于统计图表绘制。它提供简洁的API、美观的默认样式,支持散点图、箱线图、热力图等,擅长展现数据分布与关系,是数据分析常用工具。相关知识:Matplotlib库箱线图语法格式相关知识:Matplotlib库箱线图以绘制不同严重程度的温度分布箱线图为例相关知识:Matplotlib库散点图散点图以坐标点形式展示两个连续变量的关系,直观呈现数据分布特征。每个点代表一个观测值,通过点的聚集形态可判断变量间的相关性(正/负/无)、异常值及聚类趋势。语法格式相关知识:Matplotlib库散点图以绘制温度与严重程度的散点图为例Series.map(arg,**kwargs)arg:映射关系(

function,dict,Series,orarray-like

返回Series结构相关知识:DataFrame绘图Matplotlib的pyplot模块(简称plt)是Python数据可视化的基础工具,提供完整的图形控制功能,但需要手动处理数据提取和图表元素配置。Pandas库在此基础上进行了高层封装,通过DataFrame.plot()方法实现了声明式可视化。该方法能够自动识别DataFrame的列名和索引,显著简化基础图表的生成流程。相关知识:DataFrame绘图DataFrame.plot()语法格式kind参数的图表类型有“line”、“bar”、“scatter”、“box”、“hist”、“pie”、“area”。默认为折线图“line”。相关知识:DataFrame绘图代码举例相关知识:DataFrame绘图代码举例相关知识:DataFrame绘图代码举例Pandas早期版本将箱线图作为独立方法实现(df.boxplot()),因为箱线图常用于统计描述,使用频率高且参数复杂,值得单独优化,后期才发展了统一接口plot(),为保留早期API设计,避免破坏现有代码,这个方法一直沿用至今。相关知识:可视化要素Matplotlib的可视化体系遵循清晰的层级架构:画布(Figure)作为基础容器,承载所有元素;子图(Subplot)通过网格化布局实现多视图协同分析;坐标系(Axes)作为核心绘图空间,管理数据映射与图形渲染。这一架构如同舞台(Figure)上的多个表演区(Axes),通过标准化座位表(Subplot)快速排布。相关知识:可视化要素画布(Figure)创建画布并设置尺寸其他方法相关知识:可视化要素子图(Subplot)批量创建fig,axes=plt.subplots(nrows,ncols)显示创建fig=plt.figure(figsize=(14,10))fig.add_subplot(nrows,ncols,index)ax1等价于批量创建方式中axes[0,0],以此类推相关知识:可视化要素坐标系(Axes)坐标系是Matplotlib的核心绘图单元,本质是一个包含完整绘图元素的数学平面。每个Axes对象(如前面的axes变量)包含一对正交坐标轴(X/YAxis)、标题、图例及数据可视化层,通过数据-像素映射系统将数值转换为图形元素。相关知识:可视化要素坐标系(Axes)如在上述画布的左上角(0,0)位置绘制折线图相关知识:可视化要素图例(Legend)图例是数据可视化中用于说明图形元素含义的核心组件,通过颜色、线型或标记符号的对应标注,帮助用户理解图表中不同数据系列的含义。语法格式相关知识:可视化要素图例(Legend)为各种图表添加图例的统一步骤在绘图时指定“label”参数,然后调用“legend()”方法生成图例但不是所有图表都需要图例当图表元素已自解释或信息重复时不需要用图例当存在多维分类、非直观编码或数据隐含逻辑时需要图例从工业优先级的角度出发,遵循“最小有效信息”原则能用标题、标签、注释等说明的,尽量不用图例相关知识:可视化要素图例(Legend)按照以上原则,可为温度与严重程度的散点图绘制图例相关知识:可视化要素图例(Legend)按照以上原则,可为温度与严重程度的散点图绘制图例为什么要分组绘制散点图?1.因为需根据“严重程度”这个分类变量来区分数据点。2.每个严重程度级别(高/中/低)需要用不同颜色表示。3.最终需要在图例中明确展示这种对应关系。需调用unique()方法获取所有不重复的严重程度级别,同时创建颜色字典,建立类别到颜色的映射关系。每次循环处理一个严重程度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论