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

在R语言中绘制含4个变量的四象限坐标图的实现方法咨询

实现思路
  • 你可以通过自定义坐标轴映射的方式实现该四象限图,核心逻辑是:将绘图坐标的x/y轴范围设为-25到25,用正负值区分四个象限,再将坐标轴标签替换为0~25的正值,即可实现无负值的四象限展示
  • 四个变量分别对应四个轴段:x轴右半段对应varA、左半段对应varC,y轴上半段对应varB、下半段对应varD
  • 单个人的四个得分可映射为四个象限内的点,也可根据业务逻辑将四个得分组合为单个坐标点展示
实现代码
# 加载所需包
library(ggplot2)

# 样例数据
df <- data.frame(
    name = c("Donald", "Minnie", "Pluto"),
    varA = c(3, 6, 15),
    varB = c(4, 17, 6),
    varC = c(26, 21, 13),
    varD = c(10, 19, 19)
)

# 选择要展示的人员
target_name <- "Minnie"
person_vals <- df[df$name == target_name, ]

# 构造绘图数据(四个象限各对应一个变量组合点,可根据需求调整映射逻辑)
plot_data <- data.frame(
  quadrant = c("varA+varB", "varC+varB", "varC+varD", "varA+varD"),
  x = c(person_vals$varA, -person_vals$varC, -person_vals$varC, person_vals$varA),
  y = c(person_vals$varB, person_vals$varB, -person_vals$varD, -person_vals$varD)
)

# 绘图
ggplot() +
  # 绘制象限分割线
  geom_vline(xintercept = 0, linewidth = 1) +
  geom_hline(yintercept = 0, linewidth = 1) +
  # 绘制得分点
  geom_point(data = plot_data, aes(x = x, y = y), size = 4, color = "red") +
  # 自定义坐标轴:将负值转为正值展示,限定得分范围0-25
  scale_x_continuous(
    limits = c(-25, 25),
    breaks = seq(-25, 25, 5),
    labels = abs(seq(-25, 25, 5)),
    name = "varC / varA"
  ) +
  scale_y_continuous(
    limits = c(-25, 25),
    breaks = seq(-25, 25, 5),
    labels = abs(seq(-25, 25, 5)),
    name = "varB / varD"
  ) +
  # 添加象限标注
  annotate("text", x = 12.5, y = 12.5, label = "varA & varB", size = 5) +
  annotate("text", x = -12.5, y = 12.5, label = "varC & varB", size = 5) +
  annotate("text", x = -12.5, y = -12.5, label = "varC & varD", size = 5) +
  annotate("text", x = 12.5, y = -12.5, label = "varA & varD", size = 5) +
  # 主题调整
  theme_minimal() +
  theme(
    panel.grid = element_blank(),
    axis.text = element_text(size = 12),
    axis.title = element_text(size = 14)
  ) +
  # 标题设置
  ggtitle(paste(target_name, "四象限得分展示"))
自定义调整说明
  • 若需要展示单个坐标点,可根据业务逻辑将四个变量的数值计算为最终的x/y坐标,替换上述plot_data的映射规则即可
  • 可自行修改点的大小、颜色、象限标注文本、坐标轴名称等参数匹配展示需求
  • 数据中超出0-25范围的得分会自动被截断在坐标轴外,可提前做数据截断处理避免异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:15:02