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

如何在R中绘制7类地物的光谱响应散点图?

用R语言绘制地物光谱特征散点图

1. 安装并加载所需工具包

我们用tidyverse包(包含绘图工具ggplot2和数据处理工具),先安装并加载:

# 安装包(仅第一次使用时需要)
install.packages("tidyverse")

# 加载包
library(tidyverse)

2. 准备数据

模拟示例数据(可替换为你的真实数据)

以下代码模拟和你提供的示例结构一致的数据,你可以直接替换成自己的数据导入代码:

# 设置随机种子,保证结果可重复
set.seed(123)

# 模拟7类地物、4个波段的数据
land_data <- data.frame(
  土地类别 = rep(c("类别1", "类别2", "类别3", "类别4", "类别5", "类别6", "类别7"), each = 20),
  B2 = rnorm(140, mean = c(200, 220, 180, 250, 190, 230, 210), sd = 15),
  B3 = rnorm(140, mean = c(250, 270, 230, 300, 240, 280, 260), sd = 15),
  B4 = rnorm(140, mean = c(300, 320, 280, 350, 290, 330, 310), sd = 15),
  B8 = rnorm(140, mean = c(400, 450, 380, 500, 390, 460, 420), sd = 20)
)

导入真实数据

如果你的数据是CSV格式,用以下代码导入(替换文件路径):

land_data <- read.csv("你的数据文件路径.csv", encoding = "UTF-8")

3. 转换数据格式

将宽格式数据转为长格式,方便按波段分组绘图:

land_data_long <- land_data %>%
  pivot_longer(
    cols = starts_with("B"), # 选择所有以B开头的列(即波段列)
    names_to = "波段",       # 新列名:波段
    values_to = "反射率"     # 新列名:反射率数值
  )

# 固定波段显示顺序(确保按B2→B3→B4→B8排列)
land_data_long$波段 <- factor(land_data_long$波段, levels = c("B2", "B3", "B4", "B8"))

4. 绘制散点图(复现目标效果)

ggplot(land_data_long, aes(x = 波段, y = 反射率, color = 土地类别)) +
  # 添加抖动散点,避免重叠,调整透明度提升可读性
  geom_jitter(width = 0.2, alpha = 0.6) +
  # 添加每个类别在各波段的均值点(实心菱形)
  stat_summary(fun = mean, geom = "point", size = 3, shape = 18) +
  # 用线连接同一类别的均值点,展示光谱趋势
  stat_summary(fun = mean, geom = "line", aes(group = 土地类别)) +
  # 选择适合区分7类的颜色方案
  scale_color_brewer(palette = "Set1") +
  # 设置图表标题和坐标轴标签
  labs(
    title = "不同地物类型的光谱特征",
    x = "波段",
    y = "反射率数值",
    color = "土地类别"
  ) +
  # 使用简洁的白色主题
  theme_bw() +
  # 让标题居中显示
  theme(plot.title = element_text(hjust = 0.5))

关键说明

  • geom_jitter:解决散点重叠问题,width控制抖动幅度,alpha调整透明度
  • stat_summary:自动计算每个类别在各波段的均值,用点和线展示整体光谱趋势,和目标图的核心效果匹配
  • scale_color_brewer:内置调色板,能清晰区分7种土地类别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:13:30