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

如何在R中创建Minitab风格Multi-Vari图?mvPlot、multivari无法使用

在R中绘制Minitab风格Multi-Vari图的替代方案

方案1:用ggplot2手动构建(最灵活可控)

Minitab的Multi-Vari图核心是展示连续变量在多因子分组下的均值、波动范围,我们可以用ggplot2手动实现这个逻辑,完全不依赖冷门函数:

步骤1:构造示例数据

set.seed(123)
data <- expand.grid(machine = factor(c(1,2)),
                    setting = factor(c(1,2,3)),
                    replicate = 1:5)
data$diameter <- rnorm(nrow(data), 
                       mean = 10 + as.numeric(data$machine)*0.5 + as.numeric(data$setting)*0.3,
                       sd = 0.2)

步骤2:计算分组统计量

先按machine和setting分组,计算每组的均值、最小值、最大值(对应Multi-Vari图的中心和波动范围):

library(dplyr)
summary_data <- data %>%
  group_by(machine, setting) %>%
  summarise(mean_diam = mean(diameter),
            min_diam = min(diameter),
            max_diam = max(diameter),
            .groups = "drop")

步骤3:绘制Multi-Vari图

library(ggplot2)
ggplot(summary_data, aes(x = setting, y = mean_diam, color = machine, group = machine)) +
  # 绘制均值连线
  geom_line(linewidth = 1) +
  # 绘制均值点
  geom_point(size = 3) +
  # 绘制上下波动范围(对应组内的min-max)
  geom_errorbar(aes(ymin = min_diam, ymax = max_diam), width = 0.2) +
  # 调整样式贴近Minitab风格
  labs(x = "Setting", y = "Diameter", color = "Machine") +
  theme_bw() +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank())

这个图会展示每个machine-setting组合的直径均值,以及组内的波动范围,和Minitab的Multi-Vari图逻辑一致。

方案2:修复qcc包的multivari函数报错

你遇到的multivari函数报错大概率是数据格式问题,该函数要求输入的分组变量必须是因子类型,且数据结构符合要求。试试以下修正后的代码:

确保数据格式正确

# 转换分组变量为因子
data$machine <- factor(data$machine)
data$setting <- factor(data$setting)

# 调用multivari函数(qcc包)
library(qcc)
multivari(diameter ~ machine + setting, data = data)

如果还是报错,检查是否有缺失值,或者分组是否存在空组(某个machine-setting组合没有数据),删除空组即可解决递归索引的问题。

方案3:用lattice包快速绘制

lattice包的xyplot也可以快速实现类似效果:

library(lattice)
xyplot(diameter ~ setting | machine, data = data,
       type = c("p", "a", "g"), # 点、均值线、网格
       ylab = "Diameter", xlab = "Setting",
       main = "Multi-Vari Plot by Machine and Setting")

这个图会按machine分面,每个面展示不同setting下的直径分布和均值趋势,也是Multi-Vari图的一种表现形式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:15:37