如何将 edges/borders 添加到 R 中 geom_link2 中的链接?

How to add edges/borders to the links in geom_link2 in R?

有没有办法在 R 中使用 ggforce::geom_link2 创建的 link 添加 edge/border(不确定正确的词)?类似于 pch >20 的点。

我看到的问题是 geom_link2 使用 col 而不是 fill 来定义 link 的颜色。因此我不确定如何定义边框的颜色。反过来,这让我觉得没有办法在 link.
上设置边框 有什么想法吗?
谢谢。

编辑 10/02/21: 跟进@tjebo 的解决方案。

这是路径交叉问题的可重现示例。边界在十字路口消失。有 2 条路径,它仍然可以可视化,但在复杂的排序中它会变得非常混乱。

library(ggforce)
#> Loading required package: ggplot2
df <- data.frame( x = c(5, 10, 5, 10), y = c(5, 10, 10, 5), width = c(1, 10, 6, 2), colour = letters[1:4], group = c(1, 1, 2, 2))
ggplot(df) +
  geom_path(aes(x = x, y = y,  group = group), size = 10, lineend = 'round') +
  geom_link2(aes(x = x, y = y, colour = colour, group = group), 
             size = 5, lineend = 'round', n = 500) 

reprex package (v1.0.0)

于 2021-02-10 创建

厚颜无耻的解决方法:创建两个重叠的 geom_link2 图。如果你想要一个简单的单色边框,你也可以(更好)使用 geom_path 代替。

改编自 ?geom_link 中的示例。

library(tidyverse)
library(ggforce)
lines <- data.frame( x = c(5, 12, 15, 9, 6), y = c(17, 20, 4, 15, 5), xend = c(19, 17, 2, 9, 5), yend = c(10, 18, 7, 12, 1), width = c(1, 10, 6, 2, 3), colour = letters[1:5])

ggplot(lines) +
  geom_path(aes(x = x, y = y,  group = 1), size = 10, lineend = 'round') +
  geom_link2(aes(x = x, y = y, colour = colour, group = 1), 
             size = 5, lineend = 'round', n = 500) 

reprex package (v0.3.0)

创建于 2021-02-06