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

如何使用ggplot2在R中绘制tibble生成各聚类的大五人格轮廓图

用ggplot2绘制聚类的大五人格轮廓图

我来帮你快速实现这个需求!要生成每个聚类的人格轮廓图,我们需要先把宽格式的tibble转换成ggplot偏好的长格式,然后用折线图来展示每个聚类的特质得分变化。

步骤1:准备数据

首先把你的数据转换成R可直接使用的tibble:

library(tibble)

# 定义你的聚类数据
cluster_data <- tibble(
  clusters = 1:5,
  neuroticism = c(0.242, -0.285, 0.904, -0.836, 0.0602),
  introverty = c(1.02, -0.257, -0.973, 0.366, -0.493),
  empathic = c(0.511, -1.36, 0.317, 0.519, -1.03),
  open = c(0.327, 0.723, 0.0622, 0.269, -1.53),
  unconscious = c(-0.569, -0.994, -0.0249, 1.00, -0.168)
)

步骤2:转换为长格式数据

ggplot对长格式数据更友好,我们用tidyr::pivot_longer把每一行的多个特质得分拆成多行:

library(tidyr)
library(ggplot2)

# 宽格式转长格式
cluster_long <- cluster_data %>%
  pivot_longer(
    cols = -clusters,  # 排除聚类编号列
    names_to = "personality_trait",  # 存储特质名称的列
    values_to = "score"  # 存储对应得分的列
  )

步骤3:绘制轮廓图

现在用ggplot绘制每个聚类的折线轮廓,同时添加数据点让结果更清晰:

# 生成人格轮廓图
ggplot(cluster_long, aes(x = personality_trait, y = score, color = factor(clusters), group = clusters)) +
  # 绘制折线,设置线宽增强可读性
  geom_line(linewidth = 1.2) +
  # 添加数据点标记每个特质的得分
  geom_point(size = 3) +
  # 设置图表标题和坐标轴标签
  labs(
    title = "聚类人格特质轮廓图",
    x = "人格特质",
    y = "标准化得分",
    color = "聚类编号"
  ) +
  # 使用简洁的minimal主题
  theme_minimal() +
  # 自定义主题细节,让图表更美观
  theme(
    plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),
    axis.title = element_text(size = 12),
    legend.title = element_text(size = 11),
    # 倾斜x轴标签避免重叠
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

关键代码解释

  • group = clusters:确保ggplot把同一个聚类的所有特质得分连接成一条连续的线
  • color = factor(clusters):将聚类编号转为分类变量,让不同聚类自动显示不同颜色,方便区分
  • 自定义主题部分:优化了标题、坐标轴的样式,同时倾斜x轴标签避免特质名称重叠

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 23:37:41