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

如何用ggplot2创建标注箭头长度对应风速的比例尺?

给ggplot2风矢图添加风速比例尺

你可以通过annotate()函数手动添加比例尺线段和标注文本,直接在原有绘图代码后追加即可。根据你的缩放逻辑(ws / 5),5m/s风速对应的箭头长度是1个坐标单位,所以我们可以绘制一段长度为1的线段,并标注对应的风速值。

修改后的完整代码如下:

library(dplyr)
library(ggplot2)

data <- data.frame(
  long = 1:4,
  lat = 2,
  wd_x = cos(1:4),
  wd_y = sin(1:4),
  ws = 1:4
)

data %>%
  ggplot() +
  geom_segment(aes(x = long, y = lat,
                   xend = long + wd_x * ws / 5,
                   yend = lat + wd_y * ws / 5),
               arrow = arrow(length = unit(0.15, "cm"))) +
  # 添加比例尺线段
  annotate("segment", 
           x = 4.2, y = 2, 
           xend = 5.2, yend = 2,
           arrow = arrow(length = unit(0.15, "cm"))) +
  # 添加比例尺标注
  annotate("text", 
           x = 4.7, y = 2.1,
           label = "5 m/s",
           size = 4)

代码说明:

  • annotate("segment"):绘制一段水平线段,长度为1(x从4.2到5.2),对应5m/s的风速箭头长度,同时加上和主图一致的箭头样式。
  • annotate("text"):在线段上方添加标注文本,你可以根据图的布局调整x、y坐标和size参数,让比例尺位置更合理。

如果需要明确标注对应关系,也可以把label改成"1单位长度 = 5 m/s",或者拆分标注两种比例(比如同时标注1m/s对应的长度)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:12:05