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

R ggplot2绘图中如何仅在每n个数据点处添加路径方向箭头

解决代码

你可以直接修改箭头对应图层的数据源处理逻辑,修改后可运行的完整代码如下:

library(tidyverse)

x <- seq(from = -100, to = 100, by = 0.01)
y <- x^3 - 2 * x + x
df<- data.frame(x,y)
df$t<- seq(1:nrow(df))

ggplot(data = df, aes(x = x, y = y)) +
  geom_path(size = 0.1, aes(colour = t)) +
  # 仅修改箭头图层的处理逻辑即可
  geom_path(aes(colour = t),
            data = . %>% 
              # 标记需要添加箭头的位置
              mutate(is_arrow = row_number() %% 2000 == 0) %>%
              # 保留箭头点和它的前一个相邻点,用来生成极短的路径段
              filter(is_arrow | lag(is_arrow, default = F)) %>%
              # 每两个点为一组,每组单独绘制短路径
              group_by(grp = cumsum(is_arrow)) %>%
              # 过滤掉边界可能出现的不完整分组
              filter(n() == 2),
            arrow = arrow(type = 'open', angle = 30, length = unit(0.1, "inches")))

逻辑说明

  • 所有数据处理都在ggplot图层的管道内完成,不需要额外生成全局数据框,可兼容你已有的其他过滤规则
  • 每个箭头对应仅包含两个点的短路径:箭头所在点和它的前一个相邻点,路径长度极短几乎不可见,只会显示末尾的箭头标记,不会出现跨多个采样点的长直线
  • 箭头方向完全和原路径的走向一致,不需要自定义静态符号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 15:54:03