如何在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
相关产品推荐
相关产品推荐

