微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在 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 日创建

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?