- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在绘制一个散点图,其中我想突出显示随时间流逝的不同观察结果。有时,这些观察结果很接近,所以我使用 geom_label_repel 来这样做。我还想使用 enter_fade 和 exit_fade 以使动画各阶段之间的过渡更平滑。
我从其他地方(例如 here)看到 geom_label_repel 的位置可以与种子的使用保持一致。但是,这对 enter_fade 和 exit_fade 不起作用:geom_label_repel 在标签进入和退出时跳跃。
有没有办法让 geom_label_repel 在这些阶段保持原样?
这是我如何尝试实现这一点的示例,希望它能说明我遇到的问题。
set.seed(24601)
library(stringi)
library(tidyverse)
library(gganimate)
library(ggrepel)
x <-
rnorm(100, 0, 1)
y <-
rnorm(100, 0, 1)
names <-
stri_rand_strings(100,
5)
categories <-
rep(c("a", "b", "c", "d", "e"), 5)
ggplot(data.frame(x, y, names, categories)) +
aes(x = x,
y = y) +
geom_point(data = . %>%
select(- categories)) +
geom_label_repel(aes(label = names,
group = categories),
seed = 24601) +
transition_states(categories) +
enter_fade() +
exit_fade()
最佳答案
发生的事情是在转换过程中,绘图中标签的位置和数量不一致。这会导致 geom_label_repel()
强制标签彼此远离。您可以设置 force = 0
,这样您的标签就不会相互排斥(默认力为 1
),而只会被点排斥。
ggplot(data.frame(x, y, names, categories)) +
aes(x = x,
y = y) +
geom_point(data = . %>%
select(- categories)) +
geom_label_repel(aes(label = names,
group = categories),
seed = 24601,
force = 0) +
transition_states(categories) +
enter_fade() +
exit_fade()
如您所见,您将有一些标签重叠。但是,如果重要,您可以使用较低的力值(例如 force = 0.1
),这样标签只会轻微移动但重叠较少。
虽然大多数都是稳定的,但我得到了一些随机标签弹出并且没有转换,将进行调查。
关于r - 让 transition_states、geom_label_repel 和 enter_fade 协同工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73559916/
我正在绘制一个散点图,其中我想突出显示随时间流逝的不同观察结果。有时,这些观察结果很接近,所以我使用 geom_label_repel 来这样做。我还想使用 enter_fade 和 exit_fad
我是一名优秀的程序员,十分优秀!