r - 使用 gganimate 在 R 中创建流动的桑基图的问题
问题描述
我正在使用以下指南来尝试创建流动的桑基图:https ://www.hvitfeldt.me/blog/recreate-sankey-flow-chart/#r-packages 。我的理解是这种方法(即 gganimate(p))利用了一个旧的、现在不受支持的 gganimate 版本。我正在尝试调整代码以使用新的 gganimate。我正在使用下面提供的代码。
即缓慢移动并带有单独的点。我的代码得到的是快速移动的“点”,每个点实际上由一系列五个点表示:
任何使用新 gganimate 复制博客产品的帮助将不胜感激。
代码:
library(tidyverse)
library(gganimate)
sigmoid <- function(x_from, x_to, y_from, y_to, scale = 5, n = 100) {
x <- seq(-scale, scale, length = n)
y <- exp(x) / (exp(x) + 1)
tibble(x = (x + scale) / (scale * 2) * (x_to - x_from) + x_from,
y = y * (y_to - y_from) + y_from)
}
n_points <- 400
data <- tibble(from = rep(4, n_points),
to = sample(1:4, n_points, TRUE),
color = sample(c("A", "B"), n_points, TRUE))
p <- map_df(seq_len(nrow(data)),
~ sigmoid(0, 1, as.numeric(data[.x, 1]), as.numeric(data[.x,
2])) %>%
mutate(time = row_number() + .x,
y = y + runif(1, -0.25, 0.25))) %>%
ggplot(aes(x, y, frame = time)) +
geom_point()+transition_time(time)
p
解决方案
推荐阅读
- javascript - 在 js 中检查正文背景是否有效,或者是否有更好的方法来执行相同的操作?
- android - Firebase:根据时差(服务器端时间)允许访问
- python - 让使用 @contextmanager 创建的上下文管理器在异常情况下正常工作
- c# - BackColor 形式的颜色 RGB
- android - 如何在Android Studio上拔出USB之前保持热部署状态?
- jquery - jquery__WEBPACK_IMPORTED_MODULE_13__(...).popover 不是函数
- ios - quickType 栏上的自动填充密码键盘键锁图标未显示 - iOS?- 已设置 textContentType = .password?
- c# - NLog 在 Windows .Net Core 应用程序上运行良好,但在 Linux 上却不行
- mongodb - 在 MongoDB 中对任何文档值进行文本搜索
- wordpress - Wordpress:从常规帖子的现有元数据创建新的自定义帖子