当前位置: 首页 > article >正文

别再死记硬背了!用Python+Matplotlib实战复刻七大QC工具图(附完整代码)

用PythonMatplotlib实战复刻七大QC工具图在质量管理和数据分析领域七大QC工具图是经典的分析方法。传统的绘制方式往往依赖Excel或专业统计软件不仅效率低下也难以实现自动化分析。本文将带你用Python的Matplotlib和Pandas库将这些工具图从手动绘制升级为代码驱动的自动化流程。1. 环境准备与数据模拟在开始绘制图表前我们需要搭建Python环境并准备模拟数据。推荐使用Jupyter Notebook进行交互式开发它能实时展示图表效果。首先安装必要的库pip install matplotlib pandas numpy scipy模拟质量数据的核心代码import numpy as np import pandas as pd # 模拟生产数据 np.random.seed(42) data { 缺陷类型: [尺寸不符, 表面划伤, 颜色偏差, 装配不良, 包装破损], 数量: np.random.randint(10, 100, 5), 原因分类: [设备, 操作, 材料, 工艺, 环境] } df pd.DataFrame(data).sort_values(数量, ascendingFalse) df[累计百分比] df[数量].cumsum() / df[数量].sum() * 100提示使用NumPy的随机种子可以确保每次生成相同的数据便于结果复现2. 鱼骨图因果图的代码实现鱼骨图是分析问题根本原因的利器。传统绘制需要手动添加各个鱼骨而用Matplotlib可以程序化生成。import matplotlib.pyplot as plt def create_fishbone(problem, causes): fig, ax plt.subplots(figsize(10, 6)) # 主骨 ax.arrow(0.1, 0.5, 0.8, 0, head_width0.02, head_length0.02, fck) ax.text(0.5, 0.52, problem, hacenter, vabottom, fontsize12) # 大骨 categories [人员, 方法, 机器, 材料, 环境, 测量] angles [30, 20, 10, -10, -20, -30] for i, (cat, angle) in enumerate(zip(categories, angles)): x_end 0.3 0.1 * np.cos(np.radians(angle)) y_end 0.5 0.1 * np.sin(np.radians(angle)) ax.plot([0.3, x_end], [0.5, y_end], k-) ax.text(x_end0.02, y_end, cat, fontsize10) # 小骨 for j in range(3): xx_end x_end 0.05 * np.cos(np.radians(angle)) yy_end y_end 0.05 * np.sin(np.radians(angle)) ax.plot([x_end, xx_end], [y_end, yy_end], k--) ax.set_xlim(0, 1) ax.set_ylim(0, 1) ax.axis(off) plt.tight_layout() return fig create_fishbone(产品表面划伤率高, {})关键参数说明problem: 待分析的主要问题causes: 原因字典可按需扩展自动填充小骨内容angles: 控制大骨分支角度可根据美观调整3. 柏拉图帕累托图自动化生成柏拉图能直观显示关键的少数问题是质量改进的优先指南。传统方法需要手动计算累计百分比而Pandas可自动完成。def create_pareto(df, x_col, y_col, title): fig, ax1 plt.subplots(figsize(10, 6)) # 柱状图 bars ax1.bar(df[x_col], df[y_col], colorC0) ax1.set_xlabel(缺陷类型) ax1.set_ylabel(数量, colorC0) ax1.tick_params(axisy, labelcolorC0) # 累计百分比线 ax2 ax1.twinx() line ax2.plot(df[x_col], df[累计百分比], colorC1, markero, ms5) ax2.set_ylabel(累计百分比 (%), colorC1) ax2.tick_params(axisy, labelcolorC1) ax2.set_ylim(0, 110) # 80%参考线 ax2.axhline(80, colorr, linestyle--) ax2.text(df[x_col].iloc[1], 85, 80% 关键线, colorr) plt.title(title) plt.xticks(rotation45) plt.tight_layout() return fig create_pareto(df, 缺陷类型, 数量, 产品缺陷柏拉图分析)优化技巧使用双Y轴分别显示数量和百分比添加80%参考线突出关键少数自动计算累计百分比避免手动处理4. 管制图控制图的智能监控管制图是监控过程稳定性的核心工具。传统方法需要手动计算控制限而SciPy可自动计算统计参数。from scipy import stats def create_control_chart(data, period30): # 模拟30天生产数据 samples np.random.normal(loc10, scale0.5, sizeperiod) samples[25] 12.5 # 添加一个异常点 # 计算控制限 x_bar np.mean(samples) sigma np.std(samples, ddof1) ucl x_bar 3*sigma lcl x_bar - 3*sigma fig, ax plt.subplots(figsize(12, 6)) ax.plot(samples, bo-, label实际值) ax.axhline(x_bar, colorg, linestyle-, label中心线 (CL)) ax.axhline(ucl, colorr, linestyle--, label上限 (UCL)) ax.axhline(lcl, colorr, linestyle--, label下限 (LCL)) # 标记异常点 outliers np.where((samples ucl) | (samples lcl))[0] for idx in outliers: ax.plot(idx, samples[idx], ro, ms8) ax.set_title(X-bar 管制图 (30天生产数据)) ax.set_xlabel(时间 (天)) ax.set_ylabel(关键尺寸 (mm)) ax.legend() ax.grid(True) plt.tight_layout() return fig create_control_chart(None)进阶功能扩展自动检测并标记超出控制限的点实现Western Electric规则检测其他异常模式添加移动极差图实现Xbar-R联合监控5. 散布图与相关性分析自动化散布图用于分析变量间关系传统方法只能肉眼判断趋势而结合Scipy可自动计算相关系数。def create_scatter_plot(x, y, xlabel, ylabel): fig, ax plt.subplots(figsize(8, 6)) # 绘制散点 ax.scatter(x, y, alpha0.6) # 计算回归线 slope, intercept, r_value, _, _ stats.linregress(x, y) line_x np.linspace(min(x), max(x), 100) line_y slope * line_x intercept ax.plot(line_x, line_y, r--, labelf回归线 (R{r_value:.2f})) ax.set_xlabel(xlabel) ax.set_ylabel(ylabel) ax.set_title(f{xlabel} vs {ylabel} 相关性分析) ax.legend() ax.grid(True) plt.tight_layout() return fig # 模拟数据 temp np.random.normal(25, 5, 50) defect_rate 0.1 * temp np.random.normal(0, 0.5, 50) create_scatter_plot(temp, defect_rate, 温度(℃), 缺陷率(%))分析维度扩展自动计算并显示Pearson相关系数添加回归线量化关系强度支持非线性回归模型拟合6. 直方图与分布拟合智能分析直方图展示数据分布特征传统方法只能简单分组而结合Seaborn可自动优化分箱并拟合分布。import seaborn as sns def create_histogram(data, distnorm): fig, ax plt.subplots(figsize(10, 6)) # 智能分箱直方图 sns.histplot(data, kdeTrue, statdensity, binsauto, colorskyblue) # 拟合正态分布 if dist norm: mu, std stats.norm.fit(data) x np.linspace(min(data), max(data), 100) p stats.norm.pdf(x, mu, std) ax.plot(x, p, r-, linewidth2, labelf正态分布 (μ{mu:.2f}, σ{std:.2f})) ax.set_title(数据分布直方图与拟合曲线) ax.set_xlabel(测量值) ax.set_ylabel(密度) ax.legend() ax.grid(True) plt.tight_layout() return fig # 模拟尺寸数据 diameters np.random.normal(10.0, 0.3, 500) diameters np.append(diameters, [9.2, 11.1]) # 添加异常值 create_histogram(diameters)专业功能增强自动选择最优分箱数量支持多种分布拟合正态、指数、威布尔等显示关键统计参数均值、标准差等7. 检查表与层别法的数据透视实现传统检查表和层别法依赖人工分类统计而Pandas的透视表功能可自动化这一过程。def create_stratification(data, group_col, value_col): # 生成层别统计表 stats data.groupby(group_col)[value_col]\ .agg([count, mean, std]) # 可视化对比 fig, (ax1, ax2) plt.subplots(1, 2, figsize(14, 6)) # 数量对比 stats[count].plot(kindbar, axax1, colorC0) ax1.set_title(f各{group_col}样本数量对比) ax1.set_ylabel(数量) # 均值对比 stats[mean].plot(kindbar, axax2, colorC1, yerrstats[std], capsize4) ax2.set_title(f各{group_col}{value_col}均值对比) ax2.set_ylabel(f平均{value_col}) plt.tight_layout() return fig, stats # 模拟分层数据 np.random.seed(42) strat_data pd.DataFrame({ 班组: np.random.choice([A班, B班, C班], 200), 缺陷数: np.random.poisson([3, 5, 7], 200) }) create_stratification(strat_data, 班组, 缺陷数)自动化优势一键生成分层统计指标自动计算各组均值和标准差可视化对比不同层别差异8. 报告自动化与集成方案将上述图表集成到自动化报告中实现QC分析全流程自动化。Jupyter Notebook集成方案from IPython.display import display, Markdown def generate_qc_report(data_dict): display(Markdown(# 质量分析周报)) # 1. 柏拉图分析 display(Markdown(## 1. 缺陷柏拉图分析)) fig create_pareto(data_dict[defects], 缺陷类型, 数量, 本周缺陷分析) display(fig) # 2. 管制图监控 display(Markdown(## 2. 关键尺寸管制图)) fig create_control_chart(data_dict[samples]) display(fig) # 3. 层别分析 display(Markdown(## 3. 班组层别分析)) fig, _ create_stratification(data_dict[strat], 班组, 缺陷数) display(fig)PDF自动生成方案from matplotlib.backends.backend_pdf import PdfPages def save_to_pdf(figs, filenameqc_report.pdf): with PdfPages(filename) as pdf: for fig in figs: pdf.savefig(fig, bbox_inchestight) plt.close(all)企业级集成建议将分析代码封装为Python模块设置定时任务自动运行分析通过邮件自动发送分析报告与企业BI系统对接推送结果

相关文章:

别再死记硬背了!用Python+Matplotlib实战复刻七大QC工具图(附完整代码)

用PythonMatplotlib实战复刻七大QC工具图 在质量管理和数据分析领域,七大QC工具图是经典的分析方法。传统的绘制方式往往依赖Excel或专业统计软件,不仅效率低下,也难以实现自动化分析。本文将带你用Python的Matplotlib和Pandas库,…...

如何轻松实现微信聊天记录永久保存与智能分析:WeChatMsg完整指南

如何轻松实现微信聊天记录永久保存与智能分析:WeChatMsg完整指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trendin…...

Source Han Serif CN完全指南:7种粗细样式的开源中文字体深度解析

Source Han Serif CN完全指南:7种粗细样式的开源中文字体深度解析 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为中文排版设计寻找既专业又无版权风险的字体系列吗&…...

51单片机串口通信避坑指南:搞懂SMOD、TI/RI标志位与中断函数写法

51单片机串口通信实战避坑手册:从SMOD到中断函数的深度解析 当你第一次成功点亮LED时,那种成就感令人难忘。而当你尝试让51单片机通过串口与外界通信时,可能会遇到各种"玄学"问题——明明代码看起来没问题,但就是收不到…...

如何3步安装SD-PPP:Photoshop AI插件终极指南,告别多软件切换烦恼

如何3步安装SD-PPP:Photoshop AI插件终极指南,告别多软件切换烦恼 【免费下载链接】sd-ppp A Photoshop AI plugin 项目地址: https://gitcode.com/gh_mirrors/sd/sd-ppp SD-PPP是一款革命性的Photoshop AI插件,它彻底改变了传统AI绘图…...

ClawForge:企业级AI助手统一管控平台的设计与部署实践

1. 项目概述:为AI助手集群打造的统一管控中心如果你正在公司内部或团队里部署多个基于大语言模型的AI助手,比如用OpenClaw这类开源框架搭建的客服机器人、代码助手或者数据分析Agent,那么一个核心的管理痛点很快就会浮现:如何统一…...

Hearthstone-Script终极指南:轻松自动化你的炉石传说对战体验

Hearthstone-Script终极指南:轻松自动化你的炉石传说对战体验 【免费下载链接】Hearthstone-Script Hearthstone script(炉石传说脚本) 项目地址: https://gitcode.com/gh_mirrors/he/Hearthstone-Script 你是否厌倦了重复的炉石传说日…...

通过taotoken cli在ubuntu终端一键配置开发环境

通过 Taotoken CLI 在 Ubuntu 终端一键配置开发环境 1. 安装 Taotoken CLI 在 Ubuntu 终端中,您可以通过 npm 全局安装或使用 npx 直接运行 Taotoken CLI。推荐全局安装以便后续快速调用: npm install -g taotoken/taotoken若仅需临时使用或避免全局安…...

从Wi-Fi调度到云计算:Lyapunov优化如何悄悄主宰你的网络体验?

从Wi-Fi调度到云计算:Lyapunov优化如何悄悄主宰你的网络体验? 每天清晨,当你用手机刷社交媒体时,是否想过为什么视频能流畅加载?当你在咖啡馆连接公共Wi-Fi时,为何几十人共享的网络不会崩溃?这些…...

Unity集成OpenAI:游戏开发中AI对话与动态内容生成的实战指南

1. 项目概述:当Unity引擎遇见OpenAI,一场游戏开发范式的革新作为一名在游戏行业摸爬滚打了十多年的老程序员,我见证过引擎从固定管线到可编程渲染管线的飞跃,也经历过从手动寻路到AI行为树的演进。但最近几年,以OpenAI…...

告别命令行恐惧:在CoverM中,如何用一条for循环命令批量计算上百个样本的bins丰度?

告别命令行恐惧:用CoverM批量计算上百个样本bins丰度的工程化实践 当实验室积累的宏基因组样本数量突破三位数时,手动逐个处理不仅效率低下,还容易因人为操作失误导致结果不一致。我曾在一个包含247个样本的项目中,亲眼见过同事连…...

Taotoken的容灾路由如何保障关键业务API调用不间断

Taotoken的容灾路由如何保障关键业务API调用不间断 1. 平台容灾架构概述 Taotoken采用分布式架构设计,通过多模型供应商接入与智能路由机制,为开发者提供稳定的API调用服务。当单一上游服务出现波动时,系统会自动检测异常并触发预设的容灾策…...

2026年Hermes Agent/OpenClaw如何安装?腾讯云详细版3分钟搭建及接入百炼APIKey步骤

2026年Hermes Agent/OpenClaw如何安装?腾讯云详细版3分钟搭建及接入百炼APIKey步骤。本文面向零基础用户,完整说明在轻量服务器与本地Windows11、macOS、Linux系统中部署OpenClaw(Clawdbot)的流程,包含环境配置、服务启…...

NPS内网穿透实战:除了远程桌面,还能这样玩?手把手搭建个人开发调试环境

NPS内网穿透实战:解锁开发者效率的隐藏玩法 当你在咖啡馆调试微信小程序时,是否遇到过本地服务无法被外网访问的尴尬?或是团队协作时,如何让同事直接测试你本地开发的API接口?传统的内网穿透方案往往只关注远程桌面这类…...

抖音批量下载器5分钟上手指南:从零到批量处理的高效工作流

抖音批量下载器5分钟上手指南:从零到批量处理的高效工作流 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback s…...

别光测Chrome了!在Ubuntu上一次性配好Playwright的Chromium、Firefox和WebKit三大浏览器

在Ubuntu上构建Playwright全浏览器测试环境的终极指南 当现代Web应用需要确保跨浏览器兼容性时,仅测试Chrome是远远不够的。作为开发者或QA工程师,我们需要一个能同时覆盖Chromium、Firefox和WebKit三大引擎的完整测试环境。本文将带你从零开始&#xf…...

GhidraChatGPT:AI赋能逆向工程,提升二进制代码分析效率

1. 项目概述:当逆向工程遇上大语言模型逆向工程,尤其是软件逆向分析,长久以来都是一项对工程师知识储备、耐心和直觉要求极高的“手艺活”。面对一段陌生的二进制代码或一个复杂的程序,分析者需要像侦探一样,从汇编指令…...

还在为Windows窗口无法调整大小而烦恼吗?试试这个免费工具吧!

还在为Windows窗口无法调整大小而烦恼吗?试试这个免费工具吧! 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 你是否遇到过这样的情况:某个应用…...

如何用StardewXnbHack快速解压星露谷物语XNB文件:新手终极教程

如何用StardewXnbHack快速解压星露谷物语XNB文件:新手终极教程 【免费下载链接】StardewXnbHack A simple one-way XNB unpacker for Stardew Valley. 项目地址: https://gitcode.com/gh_mirrors/st/StardewXnbHack 还在为星露谷物语MOD制作中的XNB文件解压而…...

网盘直链解析全攻略:8大平台高速下载解决方案

网盘直链解析全攻略:8大平台高速下载解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅…...

网盘直链解析助手:八大平台一键获取真实下载地址的完整指南

网盘直链解析助手:八大平台一键获取真实下载地址的完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 /…...

3步搭建企业级文件管理系统:Free-FS开源解决方案全解析

3步搭建企业级文件管理系统:Free-FS开源解决方案全解析 【免费下载链接】free-fs ✨Free-Fs 开源文件管理系统:基于 SpringBoot2.x MyBatis Plus MySQL Sa-Token Layui 等搭配七牛云,阿里云OSS实现的云存储管理系统。包含文件上传、删除、…...

R语言实战:手把手教你用CIBERSORT分析肿瘤免疫浸润(附完整代码与避坑指南)

R语言实战:手把手教你用CIBERSORT分析肿瘤免疫浸润(附完整代码与避坑指南) 肿瘤微环境中的免疫细胞组成对疾病进展和治疗响应具有重要影响。CIBERSORT作为一款基于基因表达数据的反卷积算法,能够从混合表达谱中推断22种免疫细胞亚…...

蛋白质设计中的热点中心采样与扩散模型应用

1. 蛋白质设计的前沿挑战蛋白质设计领域近年来正经历着革命性的变化。作为一名长期从事计算生物学研究的从业者,我亲眼见证了从最初的简单序列优化到如今复杂三维结构设计的跨越式发展。在这个过程中,如何高效探索蛋白质构象空间始终是核心难题。传统方法…...

用快马平台快速原型设计:模拟智能应用控制拦截演示

今天想和大家分享一个有趣的开发实践:如何用InsCode(快马)平台快速搭建Windows智能应用控制功能的模拟演示。这个功能大家应该不陌生——当系统检测到可能不安全的程序时,会弹出那个熟悉的蓝色拦截窗口。下面我就拆解下如何用原型设计的方式还原这个机制…...

基于izzoa/chatgpt-plugins框架的AI插件开发实战指南

1. 项目概述与核心价值 最近在折腾AI应用开发,特别是想给ChatGPT这类大语言模型加上“手和脚”,让它能真正操作外部系统。在GitHub上翻找时,发现了 izzoa/chatgpt-plugins 这个项目。乍一看名字,你可能以为它是一堆现成的插件&…...

BetterGI:基于AI视觉识别的原神自动化工具深度解析与实战指南

BetterGI:基于AI视觉识别的原神自动化工具深度解析与实战指南 【免费下载链接】better-genshin-impact 📦BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音…...

Switch大气层系统:5步安装与专业优化完整指南

Switch大气层系统:5步安装与专业优化完整指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 想要为你的Nintendo Switch解锁全新游戏体验吗?Switch大气层系统是目前…...

SharpKeys完全指南:如何在Windows上免费重映射键盘键位终极教程

SharpKeys完全指南:如何在Windows上免费重映射键盘键位终极教程 【免费下载链接】sharpkeys SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key. 项目地址: https://gitcode.com/gh_mirrors/sh/sharpke…...

G-Helper终极指南:免费轻量级华硕设备优化神器

G-Helper终极指南:免费轻量级华硕设备优化神器 【免费下载链接】g-helper G-Helper is a fast, native tool for tuning performance, fans, GPU, battery, and RGB on any Asus laptop or handheld - ROG Zephyrus, Flow, Strix, TUF, Vivobook, Zenbook, ProArt, …...