如何从ggQC绘制的ggplot控制图中提取UCL和LCL数值?
实现方法
以下是两种常用的提取控制限的可行方案:
方法1:直接调用ggQC内置计算函数获取(推荐)
stat_QC底层就是通过QC_Lines()函数计算控制限,直接调用该函数即可得到和绘图结果完全一致的UCL、LCL数值,不需要依赖绘图对象:
# 计算XmR控制限 qc_res <- ggQC::QC_Lines(data = Golden_Egg_df$egg_diameter, method = "XmR") # 提取限值到独立变量 ucl <- qc_res$UCL lcl <- qc_res$LCL
返回的qc_res列表中还包含中心限CL、移动极差均值等其他指标,可按需提取。
方法2:从已生成的ggplot控制图对象中提取
如果已经生成了绘图对象XmR_Plot,可以直接从ggplot的构建结果中提取限值:
# 解析ggplot对象结构 plot_data <- ggplot2::ggplot_build(XmR_Plot) # stat_QC生成的控制限数据在第三层(对应你代码中geom_point、geom_line之后的stat_QC层) qc_line_data <- plot_data$data[[3]] # 按标签匹配提取对应限值 ucl <- qc_line_data$yintercept[qc_line_data$label == "UCL"] lcl <- qc_line_data$yintercept[qc_line_data$label == "LCL"]
内容的提问来源于stack exchange,提问作者Basil
相关产品推荐
相关产品推荐

