gpt4 book ai didi

r - 让 transition_states、geom_label_repel 和 enter_fade 协同工作

转载 作者:行者123 更新时间:2023-12-05 05:35:04 25 4
gpt4 key购买 nike

我正在绘制一个散点图,其中我想突出显示随时间流逝的不同观察结果。有时,这些观察结果很接近,所以我使用 geom_label_repel 来这样做。我还想使用 enter_fade 和 exit_fade 以使动画各阶段之间的过渡更平滑。

我从其他地方(例如 here)看到 geom_label_repel 的位置可以与种子的使用保持一致。但是,这对 enter_fade 和 exit_fade 不起作用:geom_label_repel 在标签进入和退出时跳跃。

有没有办法让 geom_label_repel 在这些阶段保持原样?

这是我如何尝试实现这一点的示例,希望它能说明我遇到的问题。

enter image description here


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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com