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

如何在R中为GPS鸟类移动轨迹添加方向箭头?

用ggplot2绘制带方向箭头的鸟类GPS轨迹图方案

方案1:替换所有点位为方向箭头

直接利用每个点位的direction_deg字段,把固定形状的点替换为对应方向的箭头。核心是将GPS角度转换为ggplot兼容的弧度格式,再用geom_spoke或geom_segment绘制箭头。

操作步骤:

  1. 角度格式转换:GPS方向通常以正北为0度顺时针计数,而ggplot的角度参数要求是从x轴正方向(东)逆时针计数的弧度,所以先做转换:
bird_data$direction_rad <- (90 - bird_data$direction_deg) * pi / 180
  1. 绘制带方向箭头的轨迹:
library(ggplot2)

ggplot(bird_data, aes(x = lon, y = lat)) +
  # 先绘制基础轨迹线
  geom_path(color = "gray60", linewidth = 0.8) +
  # 用geom_spoke绘制方向箭头
  geom_spoke(
    aes(angle = direction_rad),
    radius = 0.05,  # 箭头延伸长度,根据经纬度范围调整
    arrow = arrow(length = unit(0.15, "cm"), type = "open"),
    color = "#e63946",  # 箭头颜色
    linewidth = 1
  ) +
  theme_bw()

如果需要保留点位标记,可叠加geom_point:

ggplot(bird_data, aes(x = lon, y = lat)) +
  geom_path(color = "gray60", linewidth = 0.8) +
  geom_point(shape = 21, fill = "white", color = "black", size = 2) +
  geom_spoke(
    aes(angle = direction_rad),
    radius = 0.03,
    arrow = arrow(length = unit(0.1, "cm")),
    color = "#e63946"
  ) +
  theme_bw()

方案2:在轨迹路径上间隔添加方向箭头

如果点位过多,全加箭头会显得杂乱,可每隔一定数量的点位添加一个方向箭头:

操作步骤:

  1. 筛选间隔点位(示例为每10个点取1个,可根据数据密度调整):
# 按顺序筛选间隔点
interval_idx <- seq(1, nrow(bird_data), by = 10)
interval_points <- bird_data[interval_idx, ]
interval_points$direction_rad <- (90 - interval_points$direction_deg) * pi / 180
  1. 绘制带间隔箭头的轨迹:
ggplot(bird_data, aes(x = lon, y = lat)) +
  geom_path(color = "gray60", linewidth = 0.8) +
  # 在间隔点上绘制箭头
  geom_spoke(
    data = interval_points,
    aes(angle = direction_rad),
    radius = 0.08,
    arrow = arrow(length = unit(0.2, "cm"), type = "closed"),
    color = "#1d3557",
    linewidth = 1.2
  ) +
  theme_bw()

关键注意事项

  • 角度转换:务必确保角度格式与ggplot兼容,否则箭头方向会完全错误。
  • 箭头尺寸:radius(geom_spoke参数)或延伸距离(若用geom_segment)需根据你的经纬度范围调整,避免箭头超出可视范围或过小。
  • 箭头样式:可通过arrow()参数调整箭头的形状(type="open"/"closed")、长度等,适配可视化需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 02:55:20