如何在 R 中的 geom_link2 中为链接添加边/边框?

问题描述

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

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

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

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

library(ggforce)
#> Loading required package: ggplot2
df <- data.frame( x = c(5,10,5,10),y = c(5,5),width = c(1,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,colour = colour,size = 5,lineend = 'round',n = 500) 

reprex package (v1.0.0) 于 2021 年 2 月 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,5),xend = c(19,17,2,yend = c(10,18,7,1),width = c(1,10,6,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,colour = colour,size = 5,lineend = 'round',n = 500) 

reprex package (v0.3.0) 于 2021 年 2 月 6 日创建

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...