You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ggplot2控制图中同时显示2倍与3倍标准差

在同一张非分面XmR控制图中同时显示2倍和3倍标准差的实现方法

嗨,这个需求其实很容易实现——ggQC的stat_QC支持多次叠加调用,我们只需要分别指定2倍和3倍标准差,再用不同的样式区分它们就可以了。下面是具体的代码和说明:

1. 准备数据与基础图形

先回顾你的初始代码,确保数据和基础ggplot对象正确创建:

library(ggplot2)
library(ggQC)
set.seed(5555)
Golden_Egg_df <- data.frame(month=1:12, egg_diameter = rnorm(n = 12, mean = 1.5, sd = 0.2))

# 构建基础折线散点图
XmR_Plot <- ggplot(Golden_Egg_df, aes(x = month, y = egg_diameter)) + 
  geom_point(size = 2) + 
  geom_line(color = "gray50")

2. 叠加2倍和3倍标准差控制限

通过两次调用stat_QC,分别指定不同的标准差倍数,并设置不同的颜色、线型来区分两组控制限:

XmR_Plot +
  # 添加3倍标准差控制限(默认值,用深色实线突出)
  stat_QC(method = "XmR", 
          color = "darkred", 
          linetype = "solid",
          size = 1) +
  # 添加2倍标准差控制限(指定stand.dev=2,用红色虚线区分)
  stat_QC(method = "XmR", 
          stand.dev = 2, 
          color = "red", 
          linetype = "dashed",
          size = 0.8) +
  # 优化图表标签与主题
  labs(title = "XmR控制图(同时显示2倍&3倍标准差)",
       x = "月份",
       y = "鸡蛋直径") +
  theme_bw()

补充说明

  • 每次调用stat_QC都会独立计算对应倍数的控制限,叠加后就能在同一张非分面图中同时显示两组线
  • 通过color、linetype、size参数可以清晰区分2倍和3倍标准差的控制限,完全符合你想要的类似Nelson规则控制图的效果
  • 如果需要标记超出控制限的异常点,可以额外叠加stat_qc_violations(该函数同样支持指定stand.dev参数)

内容的提问来源于stack exchange,提问作者stackinator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:21:28