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

如何在ggplot2中使用散点图绘制不同来源的变量范围矩形?

R语言实现带分组范围矩形的散点图教程

1. 准备依赖包

首先安装并加载需要的工具包,tidyverse整合了数据处理的dplyr和绘图的ggplot2,对新手友好:

# 首次使用先安装,已经安装过可以注释掉这行
install.packages("tidyverse")
# 加载工具包
library(tidyverse)

2. 数据结构整理

你需要先把数据整理为规范格式:如果是原始观测数据,可以先按来源分组计算x、y轴指标的最大最小值。

# 假设你的原始数据框名为raw_data,包含3列:来源source、C_N、d13C
range_data <- raw_data %>%
  group_by(source) %>%
  summarise(
    x_min = min(C_N, na.rm = TRUE),
    x_max = max(C_N, na.rm = TRUE),
    y_min = min(d13C, na.rm = TRUE),
    y_max = max(d13C, na.rm = TRUE)
  )

注:如果之前调用filter函数报错,绝大多数情况是没有提前加载dplyr包,运行上面的library(tidyverse)后再试即可

3. 绘图代码

直接用ggplot2的geom_rect图层绘制范围矩形,再加geom_point图层绘制散点即可:

ggplot() +
  # 绘制范围矩形,alpha设置透明度避免盖住散点
  geom_rect(
    data = range_data,
    aes(xmin = x_min, xmax = x_max, ymin = y_min, ymax = y_max, fill = source),
    alpha = 0.3,
    color = "black"
  ) +
  # 绘制原始散点
  geom_point(
    data = raw_data,
    aes(x = C_N, y = d13C, color = source),
    size = 2
  ) +
  # 设置坐标轴和图例名称
  labs(
    x = "C/N",
    y = "d13C",
    color = "样本来源",
    fill = "样本来源"
  ) +
  # 基础美化主题
  theme_bw()

调整说明

  • 不需要散点仅保留矩形框的话,直接删除geom_point对应的代码段即可
  • 矩形透明度、边框颜色、散点大小都可以自行修改对应参数的数值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:24:01