R语言ggplot绘制指定12种鱼类count与depth散点图问题
ggplot分面绘制目标物种散点拟合图实现方案
1. 依赖包准备
需要用到ggplot2绘图,dplyr做数据筛选,提前加载两个包:
library(ggplot2) library(dplyr)
2. 定义目标物种列表
先把你需要绘制的12种物种的名称整理为向量,取值要和ReefFish数据集中物种列的内容完全一致:
# 替换向量内的内容为你实际需要的12个物种名称 target_species <- c("物种A", "物种B", "物种C", "物种D", "物种E", "物种F", "物种G", "物种H", "物种I", "物种J", "物种K", "物种L")
3. 完整绘图代码
ReefFish %>% # 筛选仅保留12种目标物种的观测数据 filter(物种列名 %in% target_species) %>% # 初始化ggplot映射 ggplot(aes(x = count, y = depth)) + # 添加散点图层,alpha调整透明度避免点重叠 geom_point(alpha = 0.5, size = 1.2) + # 添加拟合曲线图层,默认用lm线性拟合,可修改method参数调整拟合方法 geom_smooth(method = "lm", se = TRUE, color = "#2c3e50", linewidth = 0.8) + # 按物种分面展示,scales = "free"可让每个分面坐标轴自适应,改为"fixed"则用统一坐标轴 facet_wrap(~物种列名, ncol = 3, scales = "free") + # 可选:调整坐标轴名称和主题 labs(x = "物种个体数量", y = "观测深度") + theme_bw()
注意:把代码中的
物种列名替换为你ReefFish数据集里存储物种名称的列名,从你提供的数据集示例来看该列通常为species。
内容的提问来源于stack exchange,提问作者Alison Meeth
相关产品推荐
相关产品推荐

