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

如何用R语言mclust包绘制带聚类椭球的指定变量散点图

实现方法

你不需要修改原有聚类计算逻辑,只需要提取目标变量后绘图即可,以下两种方式都可以复现带聚类椭球边界的散点图:

方法1:ggplot2 绘制(自定义灵活度高)

library(tidyverse)
library(mclust)

# 原有聚类代码保持不变
mc <- Mclust(iris[,-5])

# 提取Sepal.Length、Sepal.Width两个变量和对应聚类结果
plot_df <- iris %>%
  select(Sepal.Length, Sepal.Width) %>%
  mutate(cluster = as.factor(mc$classification))

ggplot(plot_df, aes(x = Sepal.Length, y = Sepal.Width, color = cluster, shape = cluster)) +
  geom_point(size = 2) +
  # 叠加对应聚类的椭球边界,默认采用95%多元正态置信区间,和参考效果匹配
  stat_ellipse(linewidth = 1) +
  theme_bw()

方法2:mclust内置函数绘制(适配模型原生椭球)

直接调用mclust包自带的二维绘图函数,椭球完全匹配Mclust模型估计的混合高斯分布参数,不需要手动计算:

library(mclust)
mc <- Mclust(iris[,-5])
# 指定绘制第1、2个变量(即Sepal.Length、Sepal.Width)的分类结果
mclust2Dplot(
  data = iris[, 1:2],
  what = "classification",
  classification = mc$classification,
  parameters = mc$parameters,
  z = mc$z
)

运行后输出的图和预期效果一致:不同聚类的样本用不同形状、颜色的点标识,每个聚类外层包裹对应颜色的椭球边界。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.22 16:12:26