assets/2026-06-27-器数维新-常用质量管理图表实战从表格到热力图_2026-06-27_10-25-34.jpg

[!ABSTRACT] 核心摘要
项目:常用质量管理图表实战指南 v1.0
领域:医疗质量安全管理 / 数据可视化 / 质管工具实战
核心指标:9 种核心图表 × 医院实战数据 × 每章配 Python 绘图 + Excel vs Python 对比
三条战线:

  1. 🟢 基础三件套:表格、柱状图、饼图(分类对比、构成比)
  2. 🟡 进阶三件套:折线图、散点图、控制图(趋势、相关、稳定性)
  3. 🔴 高阶三件套:柏拉图、雷达图、热力图(80/20、多维、密度)
    两条工具路线:
  • 临床科室质控员:Excel + 数据透视表 + BI
  • 信息科/质控办:Python + pandas + matplotlib/seaborn
    目标篇幅:19,000-21,000 字,11 章
    核心隐喻:好图不是画出来的,是”想清楚”出来的——一张图三个问题:谁看?看啥?看完干嘛?

主编前言:质控员小李被主任一句话问懵的故事

周二下午,某三甲医院医务科。

质控员小李把刚做完的月度医疗质量简报投影到大屏,主任坐在对面,扫了一眼,问了一句:

“小李,这图想说明啥?”

小李当场愣住。

屏幕上是一张精心制作的柱状图——28 个临床科室,28 根柱子,五颜六色,标题写着”2026 年 5 月医疗质量指标对比”。

数据是准的,图是漂亮的,但没有结论

主任没等他回答,直接翻页:

“这个折线图呢?——你画了 24 个月的趋势线,然后呢?”
“这个饼图呢?——占比多少?所以呢?”
“还有这个柏拉图?——前 3 类占 60%?那我们改哪 3 类?”

小李每翻一页,脸色就白一度。

90% 的质控图,死在「没结论」上。

这不是小李能力差,而是大多数质控员都把”画图”当成了”做事”——只要图画出来了,任务就完成了。

但主任要的不是”图”,是**”洞察”**。

图是翻译机,把数据翻译成视觉语言;但真正的语言,是数据背后的临床洞察


这篇文章要解决什么问题?

第一,让你会用 9 种核心图表——表格、柱状图、饼图、折线图、散点图、控制图(SPC)、柏拉图、雷达图、热力图。每一章配医院实战案例 + Python 绘图代码 + 反例警示。

第二,让你会用”Excel vs Python”两条路线——临床质控员走 Excel + Power BI,信息科/质控办走 Python + pandas + matplotlib。各取所长,不必二选一。

第三,让你避开”90% 的质控图都会踩的坑”——3D 柱状图、彩虹配色、坐标轴截断、没有 UCL 的趋势图冒充控制图……这些”骗主任”的把戏,我见过太多了。


这篇文章适合谁读?

  • 🟢 临床科室质控员:想做出”主任看得懂”的图表
  • 🟡 医务科 / 质控办中层:想搭建质控数据可视化体系
  • 🔴 信息科工程师:想用 Python 做质控数据自动化
  • 🟣 临床主任 / 院长:想看懂质控报告里的”门道”

一些阅读建议

  1. 不必一次读完——可以按章节看,先看你最关心的图表类型。
  2. 强烈建议跟着 Python 代码跑一遍——每章末尾都附了代码,改改数据就是你的图。
  3. 反例警示部分必看——这才是”避坑”的核心。
  4. 第 11 章工具论剑单独看也值——这是我对”Excel vs Python”的完整思考。

狼叔写这篇文章的目的很简单:让中国医院的质控图表,少一点”装饰品”,多一点”手术刀”。

工具只是手术刀,真正重要的是——你敢不敢用它扎痛那个躲在暗处的漏洞。

来吧,咱们开始。


第 1 章:表格——所有图表的祖宗

别小看表格。表格是所有图表的祖宗,也是最容易被写废的图表。

很多质控员有个错觉——“我都开始画柱状图、画饼图了,谁还看表格?” 我在质控办干了十年,见过太多这样的同事:Excel 里拉数据,几列数字往 Word 一贴,标题写”2026 年第一季度医疗质量指标汇总”,然后就发给了医务科。

领导打开一看,皱了皱眉:”这表想说明啥?”

质控员答不上来。

90% 的质控数据表,死在「没结论」上。

1.1 为什么先讲表格

表格是最朴素的图表,它不靠颜色、不靠形状、不靠视觉效果——完全靠结构说话

这就意味着,一张表格如果结构混乱、信息缺失,没有任何”美化”能救它。反过来说,一张结构完整的表格,即便没有图,也能让主任在 30 秒内抓住重点。

我给科室质控员下过一条死规矩:任何呈给质管办的表格,必须先回答 3 个问题——

  1. 这张表想回答什么问题?(单变量对比?多科室对比?趋势?构成?)
  2. 谁会看这张表?(主任?院领导?卫健委?)
  3. 看的人看完之后要做什么决定?(批评某科室?调整某指标?汇报某事件?)

3 个问题答不清楚,这张表就别发。

1.2 5 字段铁律:合格质控数据表的”宪法”

我把过去十年写过的上千张质控表提炼成 5 个必备字段。少一个,这张表就不合格。

字段 1:指标名(What)

要写”全称+口径定义”,不能只写缩写。比如不能只写”并发症率”,要写”术后 30 天内并发症发生率(以出院诊断为准)”。否则不同科室不同口径,数据打架。

字段 2:目标值/参考值(Standard)

没有目标值的指标都是”耍流氓指标”。比如”VTE 发生率 2.3%”,这数字高不高?有目标值”≤2.0%”才知道——超了。

字段 3:同期对比(Baseline)

本月 6.8% 高不高?对比”上年同期 5.2%”或”上月 7.1%”才知道。没有对比的指标,就是孤零零的数字,没有解读价值。

字段 4:数据源(Source)

“数据从哪来”必须标注清楚。HIS 拉的数据、医务科统计的数据、科室上报的数据,质量参差不齐。我见过最离谱的一张表——骨科上报并发症率 3.2%,医务科从病案首页统计出来 9.2%,差了 3 倍。没标注数据源,所有数字都是”罗生门”。

字段 5:统计口径/时间范围(Span)

是月度数据、季度数据,还是年度数据?是出院数据、在院数据,还是门诊数据?统计起止时间是哪天到哪天?

这 5 个字段,缺一不可。我把它们叫做”质控表的 5 字段宪法”。

1.3 医院实例:某三甲 2026 Q1 围手术期质控指标汇总

下面这张表是某三甲医院 2026 年第一季度围手术期质控指标汇总(节选 8 项 × 6 科室)。

assets/qc_charts_2026_06_27/chart_01_table.png

看图说话——30 秒内抓重点:

  1. 骨科和神经外科是”重灾区”: 手术并发症率分别 9.2% 和 10.3%,远超 5.0% 目标线;手术死亡率 2.1% 和 4.2%,也超 1.5% 目标线。
  2. 术前 VTE 评估执行率全院不达标: 目标 ≥95%,全院均值仅 76.4%,骨科 62.5%、神经外科 52.1% 触目惊心。
  3. 抗菌药物 30 分钟给药率: 心外科 65.2%、神经外科 60.5% 未达标,与手术量大、接台密集有关。
  4. 唯一亮点:病理送检率全院 98.2%,所有科室达标——这一项可以作为标杆写进下季度报告。

如果你只把这张表的数字发给主任,他看完只会问一句”所以呢?” 但你加上这 4 条”看图说话”,主任立刻知道下一步该盯哪几个科室、该改哪几项流程。

1.4 反例警示:3 种”假大空”表格长什么样

反面教材 1:空指标表格

❌ 标题:某科室 2026 年质量指标完成情况
内容:指标 1 完成 ✓;指标 2 完成 ✓;指标 3 完成 ✓
(没有指标名、没有数值、没有目标、没有对比)

这种表只有一个用途——应付检查。检查的人走马观花看完,检查完了大家都忘了写了啥。

反面教材 2:无对比表格

❌ 标题:某科室 2026 Q1 医疗质量指标
内容:手术并发症率 6.8%;非计划重返手术率 2.7%;手术死亡率 1.2%;…(全是当期数字)

这种表看似”详细”,其实等于没写。没有对比的数字,就像没有刻度的尺子——你看不出长短。

反面教材 3:维度混乱表格

❌ 一张表里既有月度数据又有季度数据,既有科室又有医生个人,既有手术类指标又有药占比指标

我见过一张最夸张的”大杂烩”——某医院质控办的月报表,横轴是 28 个临床科室,纵轴是 47 项指标,但其中 8 项是手术指标、12 项是药品指标、9 项是感控指标、7 项是医保指标、11 项是其他指标——全部混在一起,看不出任何主题。

正确做法: 不同主题拆成不同表,每张表只回答一个问题。

1.5 工具选择:Excel vs Python

[!TIP] 工具选择:Excel vs Python
Excel 怎么做: 数据透视表 + 条件格式 + 冻结首行 + 数据有效性。优点:门槛低,人人会;缺点:超过 5 万行卡顿,样式难批量调整,合并单元格是大坑。
Python 怎么做: pandas.DataFrame() 加载 → .style.applymap() 着色 → .to_html()matplotlib.table 渲染。优点:可重复、可批量、可对接数据库;缺点:需编程基础。
狼叔建议: 临床科室质控员,先用 Excel 把表的”5 字段”填规范;如果数据量超过 10 万行或需要每月自动出表,再考虑 Python。


第 2 章:柱状图——分类对比之王

柱状图是质控办最常用的图表,没有之一。 它的核心使命只有一个——让数据”排队”,让差异”显形”。

我常说:”如果你只能选一种图表,选柱状图;如果你连柱状图都用不好,先别碰其他图。”

2.1 看图三问:谁高谁低?差多少?是否值得管?

柱状图最容易画,也最容易”画死”。很多质控员把柱状图当”数字搬运工”——把数据往 Excel 里一丢,柱状图自动生成,完事。

这种柱状图,没有任何管理价值。

我要求科室质控员画柱状图前,必须先回答 3 个问题:

问 1:谁高谁低? —— 即排序。柱状图如果不排序,就是一堆”乱码柱子”。看了半天不知道哪个最高,看了等于白看。

问 2:差多少? —— 即差距。要把”第一名”和”最后一名”的差距算出来,再除以目标值,看”差距百分比”。

问 3:是否值得管? —— 即优先级。差距大不代表”值得管”,还要考虑:①这个指标重要不重要?②改起来的成本高不高?③改完收益大不大?

我见过太多质控员把柱状图画得”很漂亮”,主任看完问一句”所以呢?”——这就是没回答”是否值得管”。

2.2 医院实例:全院 28 科室手术并发症率横向对比

下面这张图,是某三甲医院 2026 Q1 全院 28 个临床科室的手术并发症率横向对比(已排序)。

assets/qc_charts_2026_06_27/chart_02_bar.png

看图三问:

问 1(谁高谁低): 神经外科 10.3% > 骨科 9.2% > 胃肠外科 8.5% > 心外科 8.1% > 肝胆外科 7.8% > 普外科 7.5%。

问 2(差多少): 第一名(神经外科 10.3%)与最后一名(康复科 1.5%)差 8.8 个百分点,是目标值(5.0%)的 1.76 倍。

问 3(是否值得管): 神经外科、骨科、胃肠外科、心外科 4 个科室”双超”——既超目标线,又超出平均值 50% 以上——属于”必须管”的范畴。其余 24 个科室虽然也偏高,但属于”可观察”。

结论: 下季度质控办的工作重心,放在”双超”4 科室的专项改进。

你看,一张柱状图,如果按”三问”来做,30 秒就能给主任一份可执行的方案。 这就是柱状图作为”分类对比之王”的价值。

2.3 进阶玩法:堆叠柱状图、分组柱状图、双 Y 轴

柱状图的进阶用法,主要用于”多维度同时对比”。我用 3 种典型场景说明:

场景 1:堆叠柱状图(Stacked Bar)

适用:想看”总量”和”内部构成”。比如某科室 1 年并发症 50 例,其中 SSI 30 例、VTE 12 例、压疮 5 例、其他 3 例。

反例警示: 堆叠柱状图有个致命缺陷——除了最底层那一块,其他部分的”起点”不固定,人眼很难准确比较。如果你的核心信息是”对比各分项的大小”,别用堆叠,用分组柱状图。

场景 2:分组柱状图(Grouped Bar)

适用:2 个分类维度对比。比如”内科 vs 外科”的”并发症 vs 死亡”两组数据。

我常用它来对比”今年 vs 去年”——一眼看出每个科室的进步或退步。

场景 3:双 Y 轴柱状图(Combo)

适用:一个柱状量纲大、一个折线量纲小,共用一个 X 轴。比如”月度手术量(柱)+ 月度并发症率(折线)”。

反例警示: 双 Y 轴是”看上去很专业”,但实际上极容易误导读者——左右两个 Y 轴比例尺不一样,会让本不明显的差异”显得明显”。只有当两个指标有明确的逻辑关系时,才用双 Y 轴。

2.4 反例警示:3 种”挖坑式”美化

反例 1:3D 柱状图

3D 效果让”前面的柱子”显得比”后面的柱子”高,纯粹是视觉欺骗。所有数据可视化教材都禁止 3D 柱状图——可惜 Excel 默认模板里就有,很多质控员照搬。

反例 2:彩虹配色

一根柱子一种颜色,28 根柱子就是 28 种颜色——彩虹一般的效果,目的是什么?颜色要承载信息,不是装饰。 我见过的最离谱的一张柱状图,28 个科室用了 28 种颜色,颜色之间没有任何规律,纯粹是”为了让图好看一点”。

正确做法: 全院均值以上用红色,以下用蓝色;只有 Top 3 用突出色;其余用灰色。

反例 3:坐标轴截断

Y 轴不从 0 开始,而是从 5% 开始——这会让 6% 和 9% 的柱子看起来差很远,实际上只差 50%。

这是”画图骗主任”的典型手法。 我见过某科室画并发症率,故意把 Y 轴从 8% 开始,然后用 1% 的差距”证明”自己全院最低。主任看完大怒——因为另一个科室的质控员刚好在场,拿出了另一张 Y 轴从 0 开始的柱状图,直接揭穿。

铁律:除了有专业解释的特定场景,Y 轴必须从 0 开始。

2.5 工具选择:Excel vs Python

[!TIP] 工具选择:Excel vs Python
Excel 怎么做: 选中数据 → 插入 → 柱状图 → 右键”设置坐标轴格式”调整最小值 → 双击柱子改颜色。优点:5 分钟出图;缺点:批量出图难(每月改数据都要重新选颜色)、配色难统一。
Python 怎么做: matplotlib.pyplot.bar() 一行画图;seaborn.barplot() 一行加误差线;for dept, rate in zip(depts, rates) 一行批量配色。优点:可重复、可批量、可对接 SQL;缺点:需编程基础。
狼叔建议: 单张图用 Excel 足够;如果每月都要画”全院 28 科室对比”,用 Python 写一个脚本,每月改一行数据,自动生成 PDF 月报。


第 3 章:饼图——构成比的视觉速记

饼图是”构成比”的视觉速记。 它的本质是:把 100% 切成几块,让你一眼看出”哪一块最大”。

但饼图是质控办最容易被”画坏”的图表之一。原因很简单——它太容易画了。Excel 里点两下就出来,但凡事都有代价:饼图对数据的要求极严格。

3.1 饼图的铁律:总和=100%、类别≤7

铁律 1:总和必须等于 100%。

饼图的数据来源,必须是”构成比”——也就是”分子分母之和”。如果你想表达”医院感染部位构成”,分子必须是各类感染的总例数,分母必须是总感染例数。绝对不能用”绝对数”画饼图。

比如,我见过一张”医院感染部位构成饼图”,数据是:”SSI 30 例、VAP 20 例、UTI 10 例、其他 5 例”——这就是绝对数画饼图,违反铁律。正确做法是把它转成占比:”SSI 46.2%、VAP 30.8%、UTI 15.4%、其他 7.7%”。

铁律 2:类别数量 ≤ 7。

人眼对”角度”的辨识能力有限。当类别超过 7 个时,饼图会变成”意大利薄饼”——一片一片分不清谁是谁。

如果你的数据类别 > 7,别硬塞进饼图。要么合并小类(“其他”),要么换柱状图。

3.2 医院实例:某院 2025 年医院感染部位构成比

下面这张图,是某三甲医院 2025 年医院感染部位构成比(186 例总感染)。我特意用了 3 种饼图样式做对比:

assets/qc_charts_2026_06_27/chart_03_pie.png

3 种样式对比:

(a) 标准饼图: 最常见,把每个扇区用不同颜色区分。优点:直观;缺点:中心区域是空的(浪费空间)。

(b) 环形图(Donut): 把中心挖空,可以放”总数””关键指标”等附加信息。这是我个人最推荐的样式——既保留了饼图的”构成比”特性,又能在中心位置放关键数字。

(c) 南丁格尔玫瑰图(Nightingale Rose): 把饼图的”扇形”换成”花瓣”,花瓣的”半径”代表大小。视觉冲击强,但容易”误导”——人眼对半径的判断不准确,会让小类别显得比实际大。 我只在大屏展示、年终汇报这种”重场景”用,日常质控报告不用。

看图说话:

手术部位感染占 42%、呼吸机相关肺炎占 28%——这两类就占了 70%。ICU 感控是改进重点,具体来说就是”手术部位感染预防”和”VAP 预防 bundle”。

3.3 饼图 vs 环形图 vs 玫瑰图:不同场景的取舍

场景 推荐样式 理由
月度质控简报 环形图 中心放总数 + 关键指标
院长办公会汇报 玫瑰图 视觉冲击强,适合大屏
学术论文 / 数据上报 标准饼图 通用、兼容、不踩雷
不推荐场景 3D 饼图 详见反例

核心取舍原则: 视觉冲击力越强的图,越容易”骗人”;学术严谨性越强的图,越”平”。日常质控报告,宁选”平”的图,不选”骗”的图。

3.4 反例警示:3 种”无效饼图”

反例 1:3D 饼图

3D 效果让”前面的扇区”显得比”后面的扇区”大。纯粹的视觉欺骗。所有数据可视化教材都把 3D 饼图列为”反模式”。

我见过某医院年终汇报的 3D 饼图——主任指着最前面的”SSI 46%”那块说”占了一半”,但实际上那块只有 30%,3D 效果让它的角度看起来比实际大了 50%。

反例 2:爆炸式分离

把饼图每一片”炸开”,中间留缝——视觉效果很炸,但破坏了”总和=100%”的视觉暗示。读者看完会以为这些是”独立的数字”,不是”构成比”。

反例 3:百分比标签叠在一起

当扇区 < 5% 时,百分比标签会被挤到图外,或者几个小标签叠成一团,完全看不清。正确做法: 把 < 5% 的小类合并为”其他”,或者把标签引出到图外。

3.5 工具选择:Excel vs Python

[!TIP] 工具选择:Excel vs Python
Excel 怎么做: 选中”占比”列 → 插入 → 饼图。优点:3 步出图;缺点:①不擅长画环形图和玫瑰图(需手工调),②配色靠运气。
Python 怎么做: matplotlib.pyplot.pie(sizes, autopct='%1.1f%%') 一行画饼图;wedgeprops={'width': 0.45} 改环形图;projection='polar' + bar() 改玫瑰图。优点:样式切换一行代码;缺点:配色需自定义。
狼叔建议: 临床质控员直接用 Excel 饼图够了;质控办做大屏汇报时,用 Python 写个脚本,一键生成”标准饼图+环形图+玫瑰图”三件套,方便选择。


第 4 章:折线图——趋势是质管生命线

“一张好的折线图,胜过一千个数字。”

折线图是质量管理图表的”灵魂图表”——因为它能把”过去发生了什么、现在怎么样、未来怎么走”全部装在一张图里。

如果你去医院问主任”你最关心什么”,十个主任有八个会回答:”趋势。”

为什么?因为趋势回答了质管的核心问题——“我们是在变好还是变差?”

4.1 折线图的灵魂是”时间维度”,不是”线”

很多质控员画折线图,纠结的是”线要粗一点还是细一点”、”圆点还是方点”、”红色还是蓝色”——这些都不重要。

折线图的灵魂,是”时间维度”。 没有时间维度的折线图,不如表格。

判断一张折线图是不是”合格的折线图”,就看一个问题:这张图的 X 轴是不是”时间”? 如果不是,赶紧换柱状图。

典型反例: 我见过某医院的折线图,X 轴是”28 个临床科室”,Y 轴是”并发症率”——这画的是折线图,但 X 轴不是时间。这是把”分类数据”硬画成”折线图”——错误。分类数据该用柱状图。

4.2 医院实例:24 个月 VTE 发生率趋势

下面这张图,是某三甲医院 2024-07 至 2026-06 共 24 个月的 VTE(静脉血栓栓塞症)发生率趋势。

assets/qc_charts_2026_06_27/chart_04_line.png

看图说话:

整体趋势: 24 个月来,VTE 发生率在 1.8%-2.4% 之间波动,基本稳定。但 3 个月移动平均线显示,长期趋势在缓慢上升——这与全国 VTE 防治形势严峻的现状一致。

异常事件: 2025-10 突然拉升到 3.6%(基线 2.0% 左右),11 月回落到 2.8%。这次尖峰是 24 个月里最显眼的异常。

挖根因: 我让质控员小陈去查 2025-10 发生了什么。她翻遍记录,发现:

2025-09,医院启动 DRG 改革,把”低风险组”纳入结算范围。
2025-10,VTE 评估执行率突然从 78% 下降到 62%——很多科室为压缩平均住院日,跳过了术前 VTE 评估。
直接结果:术后 VTE 发生率飙升。

这张折线图救了一个潜在的医疗纠纷。 如果没有这张图,大家都以为”DRG 改革没问题”,直到某天某个病人猝死在厕所里。

4.3 进阶玩法:多线对比、移动平均线、季节性分解

玩法 1:多线对比(同期 vs 上年 vs 目标线)

适用:把”今年””去年””目标”三条线放在一起——一眼看出”今年比去年好/差多少””离目标还有多远”。

我用这种图做月度质控简报,主任 5 秒就能看完。

玩法 2:移动平均线(3 个月 / 6 个月)

适用:数据”噪声大”时,用移动平均线看长期趋势。

注意: 移动平均线会”抹平”短期异常——所以图中要同时保留原始数据线 + 移动平均线,避免漏掉异常事件。

玩法 3:季节性分解(进阶,不展开,以后另外开篇详述)

statsmodels.tsa.seasonal_decompose 把趋势、季节、残差三部分拆开看。适合”有明显季节性”的指标(如冬季呼吸科死亡率高、夏季消化科高)。

4.4 反例警示:2 种”骗主任”的折线图

反例 1:Y 轴不从 0 开始

Y 轴起点设为 2.0%,而不是 0%——这样 2.4% 和 1.8% 的差距看起来”巨大”,实际只差 33%。

正确做法: 折线图的 Y 轴必须从 0 开始(或从”目标值”开始,但必须标注”起点非 0”且附文字说明)。

反例 2:刻度人为压缩

把 Y 轴刻度从”0、1、2、3、4”改成”1.9、2.0、2.1、2.2、2.3”——这样所有波动都会被放大,本来是”正常波动”看起来像”剧烈波动”。

这是更隐蔽的”骗主任”手法。我见过某科室的折线图,Y 轴刻度从 1.95 到 2.05,看起来像”心脏骤停”一样上下剧烈跳动,实际上只是 1.8% 到 2.4% 的正常波动。

铁律:折线图的刻度间距必须是均匀的,且必须从 0(或目标值)开始。

4.5 工具选择:Excel vs Python

[!TIP] 工具选择:Excel vs Python
Excel 怎么做: 选中”时间”列 + “指标值”列 → 插入 → 折线图 → 添加”目标线”(在数据末尾加一行”目标值 2.0%”画水平线)。优点:简单;缺点:无法自动算移动平均。
Python 怎么做: pandas.Series.rolling(3).mean() 算 3 个月移动平均;matplotlib.pyplot.plot() + axhline() 一行画目标线;statsmodels.tsa.seasonal_decompose() 一行做季节性分解。优点:可自动化、可对接数据库。
狼叔建议: 月度简报用 Excel 出图足够;如果需要”自动月度报表 + 自动异常告警”,用 Python 接数据库 + 邮件推送。


第 5 章:散点图——相关性分析的显微镜

散点图是”找关系”的眼睛。

前面讲的表格、柱状图、饼图、折线图,都是”看一个变量”的图。散点图不一样——它一次看两个变量,让你发现它们之间是否存在某种”暗线”。

我用散点图最多的场景,是”找离群点”和”看相关性”。

5.1 散点图能干啥:找 2 个指标的”暗线”

场景 1:相关性分析

比如”平均住院日 vs 住院总费用”——直觉上,住院日越长,费用越高。但这个”直觉”是否成立?用散点图一画就知道了。

如果散点呈”左下到右上”的分布,说明两者正相关;如果呈”左上到右下”,说明负相关;如果是一团散沙,说明没关系。

场景 2:离群点发现

散点图最厉害的地方,是它能”揪出离群点”——那些不符合常规模式的点。比如一堆病人住院 5 天、费用 8000 元,突然出现一个”住院 3 天、费用 5 万元”的点——这要么是 DRG 高倍率病例,要么是数据错误,要么是检查/药品密集型病人。

场景 3:四象限矩阵(高级)

把散点图按 X、Y 中位数切成四块,每块代表一种”类型”:

  • Q1(右上): 高 X + 高 Y(双高)
  • Q2(左上): 低 X + 高 Y(异常)
  • Q3(左下): 低 X + 低 Y(双低,优质)
  • Q4(右下): 高 X + 低 Y(异常)

不同象限用不同颜色区分,一眼看出”哪类病例最多”。

5.2 医院实例:5872 例出院患者的「住院日 vs 费用」散点图

下面这张图,是某三甲医院 2025 年 800 例出院患者的「平均住院日 vs 住院总费用」散点图(为可视化清晰,从 5872 例中随机抽 800 例 + 30 例离群点)。

assets/qc_charts_2026_06_27/chart_05_scatter.png

看图说话:

整体相关性: 散点呈”左下到右上”的明显正相关分布,回归线斜率约为 1500 元/天——也就是说,每多住一天院,费用平均增加 1500 元。这个数字与该院 DRG 测算结果一致。

四象限分布:

  • Q1(高费用高天数): 复杂病例、危重病例、术后并发症病例——这是医院必须收治的”硬骨头”,管理重点是”控费”。
  • Q2(高费用低天数): 检查/药品密集型,可能是肿瘤化疗、白血病、感染性心内膜炎等。
  • Q3(低费用低天数): 优质高效,DRG 支付的”理想病例”,管理重点是”复制经验”。
  • Q4(低费用高天数): 效率待提升,可能是康复期长、等待检查时间长的病人,管理重点是”优化流程”。

离群点(红色): 图中标记的 30 个红色离群点,是”DRG 高倍率病例”——住院 15-28 天、费用 8-15 万。这些病例是医保审核的重点对象,医院需要专门管理。

实操启示: Q1 和 Q4 是管理重点。Q1 控费(避免被医保审核拒付),Q4 提效(缩短住院日)。

5.3 进阶:相关系数 r 与回归线

相关系数 r(Pearson Correlation)

衡量两个变量”线性相关”的强度:

  • |r| = 1:完美线性相关
  • |r| = 0.7-1.0:强相关
  • |r| = 0.4-0.7:中等相关
  • |r| < 0.4:弱相关

注意:r 衡量的是”线性相关”,非线性关系 r 也会很低。 比如 y = x²,r 可能只有 0。

回归线

把散点图的所有点”拟合”成一条直线(或曲线),表达”X 每增加 1,Y 平均增加多少”。

我常用它来给主任讲”趋势”——“主任,这张图说明,住院日每增加 1 天,我们平均多花 1500 元。所以缩短住院日就是省钱。”

5.4 反例警示:相关≠因果

这是我反复强调的一点——散点图最容易”误导”读者的,是让人把”相关”误认为”因果”。

我举一个真实的案例:

某医院感控科做了 12 个月的”手术室温度 vs 术后感染率”散点图。结论是:”手术室温度越低,术后感染率越高。”——r = 0.62,看似强相关。

感控科很兴奋,准备把全院手术室温度从 22℃ 提高到 25℃。我让他们冷静一下,做了进一步分析。

真相是:

  • 冬季(12-2 月),手术室不开空调,温度自然降到 18-20℃。
  • 冬季病人本身基础状态差(呼吸道感染高发),加上春节前后手术量大、医生疲劳——多重因素叠加。
  • 手术室温度和感染率的相关,是”季节”这个共同原因造成的”伪相关”。

铁律: 看到散点图的相关性,先问 3 个问题:

  1. 有没有”第三个变量”同时影响 X 和 Y?
  2. 这个相关在”时间上”是不是先后发生?
  3. 如果改变 X,Y 会不会跟着变?

只有这 3 个问题都答”是”,才可能是”因果”。

5.5 工具选择:Excel vs Python

[!TIP] 工具选择:Excel vs Python
Excel 怎么做: 选中 X 列 + Y 列 → 插入 → 散点图 → 右键”添加趋势线” → 选”线性”显示 R²。优点:5 分钟搞定;缺点:相关系数需手算(=CORREL(X,Y)),四象限需手工切。
Python 怎么做: matplotlib.pyplot.scatter() 一行画图;numpy.polyfit() + numpy.poly1d() 一行画回归线;scipy.stats.pearsonr() 一行算 r 和 p 值;seaborn.regplot() 一行搞定”散点 + 回归 + 置信区间”。优点:可批量、可深入统计。
狼叔建议: 探索性分析用 Python(seaborn.pairplot() 一次性看 10 个变量的两两关系);做汇报图用 Excel 简单清晰。


第 6 章:控制图(SPC)——被低估的神器

控制图(SPC,Statistical Process Control)是医疗质量管理最被低估的工具。 ^8ebcdc

我走访过 100 多家医院,真正在用 SPC 的不到 10 家。90% 的医院把”控制图”画成了”趋势图”——这不叫 SPC,这叫浪费纸。

6.1 SPC 的核心思想:过程稳定 ≠ 没有异常,而是异常可预测

这是理解 SPC 的关键。SPC 不是说”不许有问题”,而是说”问题是可预测的,不可预测才是问题”。

传统质量管理认为”出问题就是异常”——但 SPC 认为:在一个稳定的过程中,问题以一定概率出现是”正常”的;只有问题以异常概率出现时,才叫”异常”。

SPC 的 3 条线:

  • 中心线(CL): 过程的平均值
  • 上控制限(UCL): CL + 3σ
  • 下控制限(LCL): CL - 3σ

落在 UCL/LCL 之内的波动,是”系统固有变异”——正常
落在 UCL/LCL 之外的点,是”特殊原因变异”——异常,需要找根因。

核心思想用大白话说: “只要在 3σ 范围内,就不管;超出 3σ 才查根因。”

6.2 医院实例:骨科 12 个月髋关节置换 SSI 率 P 控制图

下面这张图,是某三甲医院骨科 2025-07 至 2026-06 共 12 个月的髋关节置换术后 SSI(手术部位感染)率 P 控制图。

assets/qc_charts_2026_06_27/chart_06_spc.png

看图说话:

3 条线(关键修正——P chart 在变样本量下 UCL/LCL 是阶梯形,不是水平线):

  • CL(中心线):3.05%(总感染 15 例 / 总手术 492 例)
  • UCL(上控制限):10.74% ~ 11.42%(因各月手术量不同,呈阶梯形)
  • LCL(下控制限):0%(负值取 0)

P chart 公式:

  • CL = Σd / Σn
  • UCL_i = p̄ + 3·√[p̄(1-p̄)/n_i]
  • LCL_i = max(0, p̄ - 3·√[p̄(1-p̄)/n_i])

12 个月数据解读:

  • 10 个低感染月份(0-1 例)的 SSI 率在 0%~2.56% 之间,均落在控制区内——属于”系统固有变异”,不需要找根因
  • 2026-03(率 13.16%、UCL 11.42%、超出 1.74 个百分点)2026-04(率 11.90%、UCL 11.01%、超出 0.89 个百分点)——这两个月均超出当月 UCL,必须立刻调查。

根因调查: 我让骨科质控员小张去查 2026-03 与 2026-04。发现:

  • 这两个月医院引入了 2 名新主刀医生,术前抗菌药物给药时间不规范(提前 2 小时给药,导致术中血药浓度不足)。
  • 同时,这两个月连台手术 7-8 台,接台间隔仅 10 分钟,手术室消毒时间被压缩。

改进措施:

  1. 对这 2 位新主刀医生进行术前抗菌药物规范培训,考核合格方可上台。
  2. 规定接台间隔不少于 30 分钟。
  3. 术后 3 个月监控,SSI 率回落到 2.5% 以下,过程重新稳定。

6.3 8 种 Western Electric Rules:识别”特殊原因变异”

光看 UCL/LCL 还不够。**Western Electric Rules(西方规则)**是 SPC 的”异常识别”标准,有 8 条:

规则 含义 实战中常见
① 1 点超 3σ 单点超出 UCL/LCL 最常见
② 连续 9 点同侧 连续 9 个点都在 CL 上方或下方 缓慢漂移
③ 连续 6 点递增/递减 6 个点持续上升或下降 趋势性变化
④ 连续 14 点交替上下 14 个点反复跳动 周期性问题
⑤ 连续 2/3 点超 2σ 同侧 3 个点中有 2 个超 2σ 偶发异常
⑥ 连续 4/5 点超 1σ 同侧 5 个点中有 4 个超 1σ 系统偏移
⑦ 连续 15 点在 1σ 内 过分聚集,分层不清 数据造假?
⑧ 连续 8 点超 1σ 任意一侧 8 个点都在 1σ 之外 系统性问题

实战应用: 医院质控员每周扫一次控制图,8 条规则逐一检查——发现任一条触发,立刻报警。

6.4 三种常用控制图:P chart / U chart / X-bar R chart

P chart(率控制图)
适用:率类指标,如”SSI 率””死亡率””VTE 率”。每组样本量可以不同(用泊松近似)。
本节案例就是 P chart。

U chart(每单位不良事件数控制图)
适用:每单位不良事件数,如”每千住院日压疮例数””每万门诊次差错数”。比 P chart 灵活。

X-bar R chart(均值-极差控制图)
适用:连续型指标,如”平均住院日””平均费用””手术时间”。分两部分:X-bar 图看均值稳定性,R 图看组内一致性。

6.5 反例警示:没有 UCL 的趋势图 ≠ 控制图

这是最常见的混淆——很多医院拿折线图冒充控制图。

伪控制图 vs 真控制图的区别:

  • 伪控制图:只有折线 + Y 轴
  • 真控制图:折线 + 中心线 + 上控制限 + 下控制限 + 异常点标注

我见过某三甲医院的”控制图月报”,洋洋洒洒 20 张图,但仔细一看——全是折线图,没有 UCL/LCL。我问质控科长:”这是控制图吗?” 他说:”我们管它叫控制图。”

我当场黑脸:”你这是侮辱 SPC 这三个字母。”

铁律:没有 UCL/LCL 的图,就是折线图;没有 UCL/LCL 的”控制图”,就是耍流氓。

6.6 工具选择:Excel vs Python

[!TIP] 工具选择:Excel vs Python
Excel 怎么做: Excel 没有内置控制图,需要手算 UCL/LCL(=AVG + 3*STDEV),然后画”折线图 + 2 条水平参考线”。过程繁琐,容易出错。
Python 怎么做: statsmodels.stats.proportion.proportion_confint() 一行算 UCL/LCL;matplotlib.pyplot.plot() + axhline() 一行画 3 条线;异常点用 numpy.where() 自动标注;statsmodels.spc 模块可直接调用标准化控制图函数。
狼叔建议: 这是为数不多的”必须用 Python 不用 Excel”的图表场景——SPC 对计算的准确性要求极高,Excel 手算 UCL 极易出错。质控办强烈建议用 Python 实现自动化 SPC 监控。


第 7 章:柏拉图——80/20 法则的质管落地

柏拉图(Pareto Chart)是质管人最应该掌握的图表之一。

它的本质是:柱状图 + 累计折线 = 双 Y 轴组合图

柱状图说”哪类问题多”,累计折线说”前几类占了多少”。两个信息合在一起,就回答了一个核心问题——“管好哪 20%,就能搞定 80% 的问题?”

这就是著名的 80/20 法则(二八定律)——意大利经济学家帕累托发现的”关键少数”现象。 ^76bd2c

7.1 柏拉图 = 柱状图 + 累计折线(双 Y 轴组合)

柏拉图的结构:

  • X 轴: 问题类别(按频次从高到低排序)
  • 左 Y 轴: 频次(柱状)
  • 右 Y 轴: 累计百分比(折线,0-100%)

画柏拉图的硬步骤:

  1. 把所有问题类别按频次从高到低排序
  2. 画柱状图(左 Y 轴)
  3. 计算累计百分比,画折线(右 Y 轴)
  4. 在累计 80% 处画一条水平线,标出”关键少数”

关键洞察: 80% 阈值线左侧的所有类别,就是”关键的少数”——管好这些,就管好了 80% 的问题

7.2 医院实例:某院 2025 年 142 例不良事件类型分布

下面这张图,是某三甲医院 2025 年 142 例不良事件的类型分布柏拉图。

assets/qc_charts_2026_06_27/chart_07_pareto.png

看图说话:

前 4 类”关键少数”:

  • 给药错误:38 例(累计 26.8%)
  • 跌倒/坠床:28 例(累计 46.5%)
  • 压疮:25 例(累计 64.1%)
  • 手术差错:21 例(累计 79.0%)

前 4 类占 79%——这正好验证了 80/20 法则。

后 6 类”琐碎多数”:

  • 输血反应、院内感染、检查延误、沟通失误、设备故障、其他——合起来才占 21%。

管理启示:

  • 把 80% 的质控资源放在前 4 类的改进上——给药错误、跌倒、压疮、手术差错。
  • 后 6 类不是不管,而是”分别管理”——每个类别单独建专项改进小组。

这是柏拉图最厉害的地方——它把”什么都要管”的质控员,变成”抓重点”的质控员。

7.3 二八定律的质管启示

我在多个医院推行”二八定律管理法”,具体操作是:

第 1 步:每月做一张柏拉图
把所有问题分类、统计频次、做柏拉图——找出本月前 20% 的”关键问题”。

第 2 步:前 20% 列入”必改清单”
把前 20% 的关键问题列入下月”必改清单”,每个问题配一个改进小组。

第 3 步:后 80% 列入”观察清单”
后 80% 的琐碎问题,合并为”常规观察”,不投入专项资源。

第 4 步:每月复盘
下月再做一张柏拉图,看前 20% 是否变了——如果前 20% 已经解决,就找下一批前 20%。

这套方法在我推行的医院里,平均减少 40% 的质控工作量,但质量改进效果提升 30% 以上——因为资源集中在刀刃上。

7.4 反例警示:柏拉图的 3 种”无效画法”

反例 1:不排序

把类别按字母顺序或随机顺序排——柏拉图瞬间变成”普通柱状图”,失去”二八”含义。

铁律:柏拉图必须按频次从高到低排序,这是柏拉图的灵魂。

反例 2:不算累计百分比

只画柱状图,不画累计折线——柏拉图就退化成普通柱状图,无法判断”前几类占多少”。

反例 3:类别超过 15 项

15 项类别,前 3 项可能只占 30%,柏拉图的”集中”特征消失。正确做法: 把 < 5% 的小类合并为”其他”,让前 5-7 类成为主体。

7.5 工具选择:Excel vs Python

[!TIP] 工具选择:Excel vs Python
Excel 怎么做: 数据按频次降序排 → 插入 → 柱状图 → 右键”更改系列图表类型”把累计百分比改成折线 → 右键”设置次坐标轴”。优点:模板成熟,网上搜”Excel 柏拉图”有大量教程;缺点:每次新增类别都要重新做图,排序变化后图表易错位。
Python 怎么做: pandas.DataFrame.sort_values() 一行排序;matplotlib.pyplot.bar() + twinx() + plot() 三行画图;累计百分比用 numpy.cumsum() / sum() * 100 一行算。优点:可重复、可对接数据库;缺点:初次设置稍复杂。
狼叔建议: 临床质控员用 Excel 模板(网上下”Excel 柏拉图自动生成模板”);质控办建议用 Python 脚本,每月自动出图。


第 8 章:雷达图——多维度五维扫描

雷达图(Radar Chart)是把”多个柱状图拧成一个圈”。

当你需要同时看一个科室的”5 个维度”或”8 个维度”时,雷达图比 5 张柱状图直观得多——一眼看出”哪个维度是短板”。

8.1 雷达图的本质

雷达图的结构:

  • 一个中心点
  • N 条从中心向外辐射的轴(每条轴代表一个维度)
  • 数据点连接成多边形

本质: 把”X 轴 = 维度”的柱状图,改成”X 轴 = 角度”的极坐标图。

适用场景: 综合评分、多维度对比、能力模型评估。
不适用场景: 时间趋势、构成比、相关分析。

8.2 医院实例:全院 12 科室医疗质量综合评分

下面这张图,是某三甲医院全院 12 个临床科室的医疗质量综合评分雷达图。我用 4 个代表性科室做对比。

assets/qc_charts_2026_06_27/chart_08_radar.png

5 个评分维度:

  • 医疗质量(权重 30%)
  • 运营效率(权重 20%)
  • 患者满意度(权重 20%)
  • 教学科研(权重 15%)
  • 学科建设(权重 15%)

4 个代表科室解读:

心外科(绿色,标杆):

  • 5 维全部 85+ 分,是全院综合标杆
  • 学科建设和教学科研特别突出(90+ 分)
  • 短板:运营效率稍弱(88 分)——可能是高端术式多、费用高

骨科(蓝色,本期):

  • 5 维全部 78-92 分,整体均衡
  • 患者满意度最高(92 分)
  • 短板:运营效率(78 分)——可能与平均住院日较长有关

骨科(虚线,上期):

  • 5 维 70-85 分,整体比本期差
  • 与本期对比,5 维全面提升——改进措施见效

急诊科(红色,待提升):

  • 5 维全部 60 分以下,是全院洼地
  • 学科建设仅 58 分——这与急诊科”重临床、轻科研”的传统有关
  • 改进重点:学科建设、教学科研、运营效率三方面补强

核心洞察: 雷达图最大的价值不是”看分数”,而是”看形状”——多边形越接近正多边形(规则形状),说明科室发展越均衡;形状越”凹”或”凸”,说明有短板或长板。

8.3 进阶:多系列叠加、阈值线、维度权重

玩法 1:多系列叠加

把”本期”和”上期”两条雷达图叠在一起——一眼看出”哪些维度提升了、哪些维度退步了”。

注意: 不要叠超过 3 条线,否则会”乱”。

玩法 2:阈值线

每个维度画一条”达标阈值”(如 80 分),低于阈值的部分用红色填充——让短板一眼可见

玩法 3:维度权重

雷达图天然支持”权重”——每个维度的轴长按权重缩放。权重 30% 的维度轴长,权重 15% 的轴短。

注意: 加权会让”短板”看起来更短,但也容易让人困惑——是否加权取决于听众。给主任看不加权(直观),给绩效分配看加权(精确)。

8.4 反例警示:雷达图的 4 个大坑

坑 1:维度超过 7 个

10 维度以上的雷达图,会变成”密集蛛网”——人眼分不清每条轴。

铁律:雷达图维度 ≤ 7 个。

坑 2:量纲不统一

把”并发症率(%)””平均住院日(天)””满意度(分)””手术量(台)”混在一起画雷达图——量纲不同,会让某些维度被淹没。

正确做法: 所有维度先归一化到”0-100 分”,再画雷达图。

坑 3:跨科室直接比绝对值

某三甲医院直接把 28 个科室的”并发症率””死亡率””住院日”画到一张雷达图上——结果骨科、心外科、神外这些”手术科室”的指标天生就比”内科”高,看起来”很差”,但其实是病种结构问题。

正确做法: 同类型科室对比(手术科室 vs 手术科室,内科 vs 内科),或者用”标准化分数(Z-score)”代替绝对值。

坑 4:维度顺序影响形状

把”医疗质量”和”运营效率”的轴位置换一下,多边形的形状就完全不同——人眼对”形状”敏感,容易误读”形状变了 = 评分变了”。

正确做法: 固定维度顺序(比如全部按权重从高到低),保证多次对比时形状变化只反映”分数变化”。

8.5 工具选择:Excel vs Python

[!TIP] 工具选择:Excel vs Python
Excel 怎么做: 数据归一化 → 插入 → 雷达图 → 设置轴范围 0-100。优点:模板成熟;缺点:多系列叠加易乱、阈值线难加。
Python 怎么做: matplotlib.pyplot.subplot(projection='polar') 一行建极坐标;plot() + fill() 两行画多边形;fill_between() 一行加阈值区域。优点:样式可控、可批量;缺点:需理解极坐标。
狼叔建议: 临床科室自评用 Excel 足够;全院多科室对比用 Python 写脚本,可批量出图。


第 9 章:热力图——数据密度的视觉武器

热力图(Heatmap)是质管办最”炫”,也最被滥用”的图表。

它把数字转成颜色——颜色越深,数值越大(或越小)。当你要展示”两个分类维度的交叉强度”时,热力图是无可替代的。

但热力图也是最容易被滥用的图表之一——很多质控员把热力图当”美化工具”,什么数据都往上塞,结果画出来的图”花里胡哨但没人看得懂”。

9.1 热力图的核心价值:2 个分类维度的交叉强度

热力图的本质:

  • X 轴: 一个分类维度(如科室、时段、月份)
  • Y 轴: 另一个分类维度(如疾病类型、医生、设备)
  • 单元格颜色: 两个维度的”交叉强度”(频次、率、密度)

适用场景:

  • 28 科室 × 24 时段 的不良事件密度(本节案例)
  • 30 种手术 × 12 个月 的并发症分布
  • 50 种药品 × 28 科室 的使用强度
  • DRG 病组 × 科室 的住院日/费用分布

不适用场景:

  • 时间趋势(用折线图)
  • 单变量对比(用柱状图)
  • 相关性分析(用散点图)

9.2 医院实例:28 科室 × 24 时段 不良事件密度

下面这张图,是某三甲医院 28 个临床科室 × 24 个时段 的不良事件密度热力图。颜色越深,事件越多。

assets/qc_charts_2026_06_27/chart_09_heatmap.png

看图说话:

整体规律:

  • 凌晨 0-5 点整张图明显颜色深——夜间是不良事件高发期
  • 上午 9-11 点有第二个高峰(交接班 + 手术集中)。
  • 下午 14-16 点次高峰(手术后观察期)。
  • 夜间 20-22 点相对平静(夜班医生刚接班)。

热点识别:

  • 骨科 × 凌晨 2-4 点 (图左上角”*”位置):骨科术后并发症集中爆发。
  • 神经外科 × 凌晨 1-3 点(图中”*”位置):神经外科危重病人夜间病情变化。
  • 泌尿外科 × 凌晨 3-4 点(图中”!”位置):术后出血集中。

管理启示:

  • 加强夜间值守——特别是凌晨 0-5 点骨科、神经外科、泌尿外科的值班力量。
  • 优化交接班——上午 9 点交接班时,必须把”夜间异常”完整交接。
  • 夜班激励——对夜间值班的医护给予绩效倾斜,稳定夜间团队。

这是热力图最厉害的地方——它把”科室”和”时段”两个维度的交叉规律,一次性呈现在一张图里。 用表格要写 28 × 24 = 672 个数字,用柱状图要画 28 张图,用热力图一张搞定。

9.3 进阶:色阶选择指南

热力图的”灵魂”是色阶——颜色选错了,信息就丢了。

常见色阶对比:

色阶 适用场景 注意事项
Sequential(单色渐变) 单调数据(如密度、强度) 推荐 RedsBluesGreens
Diverging(双向色阶) 有”中位”的数据(如 Z-score、差异) 推荐 RdBu_r(红-白-蓝)
Qualitative(分类色) 无序分类 慎用,会让数据看起来”离散”

狼叔建议: 医疗数据默认用 Reds(单色红)或 viridis(感知均匀)——这两种色阶对色盲友好,且数值越大颜色越深,符合直觉。

反例警示:

  • 彩虹色阶(jet): 看似鲜艳,但人眼对”中间色”敏感度低,会丢失信息。所有数据可视化教材都把 jet 列为”反模式”。
  • 过多样色阶: 在一张图里用 5 种颜色——读者会问”为什么这块是蓝色,那块是绿色?”简单最好。

9.4 反例警示:热力图的 3 种”踩雷”

雷区 1:过度依赖颜色

热力图把数字转成颜色——但色盲读者(占人口 8%)会看不清。狼叔见过某医院的热力图,绿-红配色,色盲医生完全分不清。

正确做法: ①加注释(在热点单元格标”!”或”*”),②用色盲友好色阶(viridis),③附原始数据表。

雷区 2:忽略绝对值

一张全院不良事件热力图,骨科 5 例,康复科 1 例——颜色上看骨科”红得发黑”,康复科”几乎透明”。但实际上骨科事件多是因为手术量大、风险高,而康复科事件少是因为基本不做手术。没有标准化,热力图就会”误导”。

正确做法: 把绝对数转成”率”(如每千住院日事件数),再画热力图。

雷区 3:维度太多,单元格太密

50 科室 × 24 时段 = 1200 单元格的图——根本看不清。

正确做法: ①降维(只选 Top 10 科室),②分组(把科室按”内科/外科”分组画多张小热力图)。

9.5 工具选择:Excel vs Python

[!TIP] 工具选择:Excel vs Python
Excel 怎么做: Excel 条件格式 → 色阶 可模拟热力图,但仅限 2D 小规模数据(如 10×10)。超过 20×20 单元格,Excel 就开始卡顿,且配色难看。
Python 怎么做: seaborn.heatmap(data, cmap='Reds', annot=True) 一行画热力图;sns.clustermap() 一行做聚类热力图;matplotlib.pcolormesh() 自定义更精细。优点:可处理大数据(1000×1000 流畅)、配色专业、可聚类。
狼叔建议: 10×10 以下小规模用 Excel 条件格式足够;超过 20×20 必须用 Python——这是热力图的”红线”。


第 10 章:图表组合拳——实战图谱

单张图表是”看见”,图表组合是”看懂”。

实战中,我很少单独发一张图——一个完整的质控报告,通常是 3-5 张图的组合,每张图回答一个问题,合在一起回答”全局怎么样”。

这一章我分享两个实战案例:案例一(Excel 月报)和案例二(Python 专项改进)。

10.1 案例一:某院月度医疗质量简报(3 图 1 表 + Excel)

场景: 每月 5 号,质控办要给院长办公会提交上月的医疗质量简报。听众:院长 + 6 位副院长 + 12 位临床科室主任。时长:15 分钟汇报。

简报结构(3 图 1 表):

图 1:全院 28 科室并发症率柱状图(横向对比)

  • 回答:谁高谁低?——Top 5 科室一眼锁定。

图 2:24 个月 VTE 趋势折线图(时间维度)

  • 回答:在变好还是变差?——趋势稳定性。

图 3:不良事件类型柏拉图(关键少数)

  • 回答:管好哪 20%?——前 4 类占 79%。

表 1:8 项核心指标当月 vs 同期 vs 目标值

  • 回答:具体指标表现?——详细数据。

Excel 实现过程(供临床质控员参考):

  1. 数据从 HIS 导出 → 复制到 Excel
  2. 图 1:数据透视表 → 柱状图 → 排序 → 配色 → 5 分钟
  3. 图 2:数据透视表 → 折线图 → 添加目标线 → 标注异常 → 10 分钟
  4. 图 3:数据透视表 → 排序 → 柱状图 + 累计折线 → 双 Y 轴 → 15 分钟
  5. 表 1:Excel 表格 → 条件格式(超标红) → 5 分钟

总耗时:约 40 分钟,每月可重复。

优点: 全院人手人会,模板可复用。
缺点: 配色不统一、异常点标注靠手动、每月都要重做。

10.2 案例二:某科围手术期专项改进(5 图组合 + Python)

场景: 骨科围手术期质控改进专项,需要一份完整的”诊断报告”。听众:骨科全体医生 + 麻醉科 + 手术室 + 质控办。时长:60 分钟专题会。

专项报告结构(5 图组合):

图 1:骨科 12 个月 SSI 率 P 控制图(稳定性)

  • 回答:过程是否受控?——超出 UCL 的点必须查根因。

图 2:骨科 vs 全院并发症雷达图(综合评估)

  • 回答:5 维综合评分在什么水平?——与全院标杆对比。

图 3:骨科手术患者住院日 vs 费用散点图(效率 + 离群点)

  • 回答:效率如何?哪些是高倍率离群点?

图 4:骨科围手术期里程碑甘特图(改进计划)

  • 回答:改进任务的时间节点是什么?——责任人 + 时间。

图 5:骨科 24 小时不良事件热力图(时间规律)

  • 回答:哪个时段是高危时段?——加强夜间值守。

Python 实现过程(供信息科参考):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 5 张图,1 个脚本,每月跑一次
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.stats.proportion import proportion_confint

# 1. 加载数据(从 HIS 数据库)
df = pd.read_sql('select * from ortho_ssi_2025_2026', conn)

# 2. P 控制图
def plot_spc(data):
p_bar = data['infections'].sum() / data['surgeries'].sum()
sigma = (p_bar * (1 - p_bar) / data['surgeries']).mean() ** 0.5
plt.axhline(p_bar, label='CL')
plt.axhline(p_bar + 3*sigma, color='red', linestyle='--', label='UCL')
plt.axhline(p_bar - 3*sigma, color='red', linestyle='--', label='LCL')
plt.plot(data['month'], data['rate'], 'o-')
plt.savefig('chart1_spc.png')

# 3. 其他 4 张图类似,合并到一个 PDF
# 最终:1 个 Python 脚本 → 自动生成 5 张 PNG → 合并成 PDF

总耗时:首次开发 4 小时,之后每月 10 分钟(改数据库查询条件,一键出图)。

优点: 自动化、可重复、配色统一、可直接对接数据库。
缺点: 需 Python 基础、首次开发成本高。

10.3 实战心法:图表组合的”3+2”原则

我总结了一套”3+2”原则,适用于所有质控报告:

3 张图必备:

  1. 横向对比图(柱状图):谁高谁低
  2. 时间趋势图(折线图):在变好还是变差
  3. 关键少数图(柏拉图):管好哪 20%

2 张图可选:
4. 相关性/离群点图(散点图):谁异常
5. 多维评估图(雷达图):综合怎么样

1 张表兜底:

  • 详细数据表,让读者能溯源

实战心法:每个报告不超过 5 张图 + 1 张表。 多于 5 张图,听众就看不过来了。

10.4 数字化时代的图表新玩法

Power BI / FineBI / Tableau / 国产 BI:
适合:院领导驾驶舱、临床科室看板。
特点:拖拽式,无需编程;实时刷新;权限管理。

质管通 / 狼叔的自研自用平台:
适合:医院个性化需求。
特点:可对接 HIS / EMR / 院感系统;支持自定义指标。

Python + Jupyter + Streamlit:
适合:信息科 / 质控办自研。
特点:开源免费,可深度定制;可对接任意数据源;支持 AI 自动分析。

我的建议: 临床科室用 BI 工具(零代码),信息科/质控办用 Python 自研(高灵活)。


第 11 章:工具论剑:Excel vs Python 完整对比矩阵

做图表,到底用 Excel 还是 Python?

这是质控办每年都在争论的问题——有人说”Excel 够用”,有人说”必须上 Python”。我的观点:不是非此即彼,而是各取所长。

这一章,我用 8 维度对比表 + 决策树 + 两条路线建议,把这个问题讲透。

11.1 8 维度对比矩阵

维度 Excel Python 实战选择
学习成本 ⭐⭐(人人会) ⭐⭐⭐⭐(需编程) 临床选 Excel,信息科选 Python
重复劳动 ⭐⭐(每次重做) ⭐⭐⭐⭐⭐(函数复用) 每月都做选 Python
可视化上限 ⭐⭐⭐(内置有限) ⭐⭐⭐⭐⭐(无限定制) 复杂图选 Python
数据量 ⭐⭐(<10万行卡) ⭐⭐⭐⭐⭐(百万行流畅) 大数据选 Python
可复用性 ⭐⭐(模板难维护) ⭐⭐⭐⭐⭐(代码即资产) 长期项目选 Python
团队协作 ⭐⭐⭐(共享文档) ⭐⭐⭐⭐(Git + Jupyter) 大团队选 Python
数据源接入 ⭐⭐⭐(ODBC/插件) ⭐⭐⭐⭐⭐(任意 API/DB) 多源数据选 Python
AI 集成 ⭐⭐(Copilot 辅助) ⭐⭐⭐⭐⭐(原生 LLM 生态) AI 应用选 Python

核心结论:

  • Excel 优势: 门槛低、人人会、模板化
  • Python 优势: 自动化、可复用、可深度定制
  • 关键分水岭: 数据量 & 重复频率

11.2 真实场景决策树

我总结了 3 个最常用的决策路径——

决策树 1:数据在哪里?

1
2
3
4
你的数据在哪?
├── HIS 导出的 Excel/CSV → Excel 够用
├── 实时数据库(HIS / EMR) → Python
└── 多系统融合(HIS + 院感 + 医保) → Python

决策树 2:图给谁看?

1
2
3
4
你的图给谁看?
├── 主任月报(每月一次) → Excel + 截图
├── 看板大屏(实时刷新) → Python + BI / Streamlit
└── 学术论文(深度分析) → Python + ggplot 风格

决策树 3:更新频率多高?

1
2
3
4
5
你的图更新频率?
├── 每季度一次 → Excel
├── 每月一次 → Excel + VBA 半自动化
├── 每周一次 → Python + 自动化脚本
└── 每天/实时 → Python + 数据库触发

实战经验:80% 的医院质控场景,Excel 足够。 但剩下 20% 的”重点场景”(围手术期专项、抗菌药物管理、DRG 入组分析)——这些需要 Python。

11.3 狼叔建议的两条路线

🟢 路线 A:临床科室质控员路线

工具栈: Excel + 数据透视表 + Power Query + Power BI 看板

典型工作流:

  1. HIS 导出原始数据 → Excel
  2. Power Query 清洗、合并
  3. 数据透视表做交叉分析
  4. 条件格式 + 色阶做”伪热力图”
  5. 柱状图/折线图/柏拉图三件套做月报
  6. 嵌入 Power BI 看板,实时刷新

学习路径:

  • 阶段 1:熟练数据透视表 + 基础图表(1 周)
  • 阶段 2:Power Query 数据清洗(2 周)
  • 阶段 3:Power BI 看板搭建(1 个月)
  • 阶段 4:Dax 公式做高级计算(2 个月)

优点: 零代码、人人会、模板丰富。
缺点: 难以自动化、大数据卡顿、定制受限。

🔵 路线 B:信息科 / 质控办路线

工具栈: Python + pandas + matplotlib/seaborn + Jupyter + 数据库直连

典型工作流:

  1. Python 脚本直连 HIS 数据库
  2. pandas 做数据清洗、合并、分组
  3. matplotlib/seaborn 做可视化
  4. statsmodels 做 SPC 控制图
  5. Jupyter Notebook 做探索分析
  6. 导出 HTML / PDF 自动报表

学习路径:

  • 阶段 1:Python 基础 + pandas(1 个月)
  • 阶段 2:matplotlib + seaborn(2 周)
  • 阶段 3:数据库 SQL(2 周)
  • 阶段 4:SPC / 高级统计(1 个月)
  • 阶段 5:Jupyter + 自动化报表(2 周)

优点: 自动化、可重复、可对接任意数据源、可结合 AI。
缺点: 学习曲线陡、需要 IT 支持。

11.4 未来 3 年趋势:LLM 让”自然语言出图”成为可能

趋势 1:Excel Copilot 让”自然语言出图”成为可能

Microsoft 365 Copilot 已经支持”用一句话生成 Excel 图表”——比如输入”画出各科室并发症率柱状图,目标线 5%”,Excel 自动出图。未来 3 年,Excel 用户的图表效率会大幅提升。

趋势 2:Python + LLM 让”零代码图表”成为可能

只要你会写 prompt,就能让 LLM 生成 Python 代码——比如”用 Python 画出某科室 12 个月 SSI 率 P 控制图”,LLM 直接给出可运行代码。未来 3 年,编程门槛会大幅降低。

趋势 3:真正的赢家是”会用工具的人”

工具在变,工具人在变。但”想清楚一张图要回答什么问题”这件事,工具替不了你。 这是质管人的核心能力。

狼叔的终极建议:

  • 临床质控员:Excel + Power BI,快速上手,把时间花在”数据洞察”上
  • 信息科/质控办:Python + AI,深度定制,把时间花在”自动化”上
  • 不管用哪个工具,先想清楚”这张图要回答什么问题”,再动手画

结语:好图不是画出来的,是”想清楚”出来的

写到第 11 章,我猜很多读者心里在想:”狼叔,这 9 种图表我已经看了一遍,但到底怎么用在工作里?”

我给你三个问题,不管你画什么图,先问自己——

第一,这张图谁看? —— 主任?院长?卫健委?病人?不同听众,图的”语言”不一样。
第二,这张图让人看啥? —— 不是”看数字”,而是”看趋势/看差异/看结构/看问题”。
第三,看完之后干嘛? —— 改流程?改指标?改考核?如果看完什么都不做,这张图就是废图。

好图不是画出来的,是”想清楚”出来的。

工具千变万化,但”想清楚”这件事,十年不变。


🎁 彩蛋预告:质效精研 P34 / P35 即将连发

很多老读者问:”狼叔,你之前发的质效精研系列预告里好像也包含这方面的内容?”

是的——P34 和 P35 已经写好,正在精修,目前质效精研发到了 18 期, 跟这个话题相关的两期也快发到了。

📘 P34《鱼骨图、柏拉图、甘特图的「深度混合使用法」》
一个 RCA 复盘会上,7 个科室主任围坐,6 次会议搞不定的根因,3 张图 + 30 分钟全部定位——这就是”工具深度组合”的力量。
质控员、医务科长、临床主任必看。

📘 P35《Excel 不只是表格——用函数实现质控自动化》
你以为 Excel 只是录数据?错了。VLOOKUP / INDEX-MATCH / 数据透视表 / Power Query / VBA——一套 Excel 武器库,能让你从”录数据的”升级成”做数据的”
零代码,人人能学。

两篇连发,敬请期待。 关注「白衣狼的医质管空间」公众号,第一时间收到推送。


📦 文末福利:模板 + 代码 + 反例清单

文中提到的所有素材,已上传至个人网站。点击「阅读原文」可直接下载使用——

  1. 📊 9 张医院实战示例图(PNG,公众号适配,可直接引用)
  2. 🐍 9 张图的 Python 源码(generate_all_charts.py,改数据即可复用)
  3. 📋 质控数据汇总表 v2.0(Excel 模板,5 字段铁律已内置)
  4. 🚨 9 种图表的反例警示清单(PDF,打印贴墙上,团队避坑)
  5. 🎯 SPC 控制图自动监控脚本(Python,接 HIS 数据库后一键告警)

所有素材永久免费。 这是狼叔对中国医院质管圈的一点心意——愿我们少一点”为了画图而画图”,多一点”用图说话、用图决策”。


写在最后

2016 年,我第一次在医院的周会上画柏拉图,台下 30 个主任没一个看得懂。

2026 年,医院里每个质控员都会画柏拉图了——但大部分还是”画图”而不是”用图”。

这 10 年,我最大的感慨是:工具会越来越简单,但思考永远是稀缺品。

这张表、那张图、这条线、那个点——它们都是”看得见”的。

真正值钱的是”看不见”的:你为什么选这张图、你想让人看到什么、你期待看完之后别人做什么决定。

这 11 章,你学会了 9 种图表的工具用法。

但工具是死的,人是活的。

愿你做那个”用图说话”的人。

愿中国医院的质控图表,少一点”装饰品”,多一点”手术刀”。