【发布时间】:2021-03-31 04:48:27
【问题描述】:
由于我在这里找不到答案,所以我的代码和使用的数据的简化版本。
我的数据包含一个“days”变量,它表示本周原始数据点的数量。使用 gganimate 绘图,我可以在动画中显示当前周,但不能显示关联的聚合数据点(“天”)。
样本数据:
df <- structure(list(GKZ = c(101L, 101L, 101L, 101L, 101L, 101L, 101L,
101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L,
101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L,
101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L, 101L,
101L, 101L, 101L, 102L, 102L, 102L, 102L, 102L, 102L, 102L, 102L,
102L, 102L, 102L, 102L, 102L, 102L, 102L, 102L, 102L, 102L, 102L,
102L, 102L, 102L, 102L, 102L, 102L, 102L, 102L, 102L, 102L, 102L,
102L, 102L, 102L, 102L, 102L, 102L, 102L, 102L, 102L, 102L, 102L,
102L, 102L), week = c(8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50), district = c("Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Eisenstadt(Stadt)", "Eisenstadt(Stadt)", "Eisenstadt(Stadt)",
"Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)",
"Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)",
"Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)",
"Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)",
"Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)",
"Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)",
"Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)",
"Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)",
"Rust(Stadt)", "Rust(Stadt)", "Rust(Stadt)"), deaths = c(0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 3L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L), pop = c(14816L, 14816L, 14816L, 14816L,
14816L, 14816L, 14816L, 14816L, 14816L, 14816L, 14816L, 14816L,
14816L, 14816L, 14816L, 14816L, 14816L, 14816L, 14816L, 14816L,
14816L, 14816L, 14816L, 14816L, 14816L, 14816L, 14816L, 14816L,
14816L, 14816L, 14816L, 14816L, 14816L, 14816L, 14816L, 14816L,
14816L, 14816L, 14816L, 14816L, 14816L, 14816L, 14816L, 1980L,
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L,
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L,
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L,
1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L, 1980L,
1980L, 1980L, 1980L, 1980L, 1980L, 1980L), days = c(5L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 4L, 5L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 4L), deathrate = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 20.2483801295896, 20.2483801295896, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0)), row.names = c(NA, -86L), groups = structure(list(GKZ = 101:102,
.rows = structure(list(1:43, 44:86), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = 1:2, class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
我的实际绘图使用 shapefile 上的完整数据集的连接。我希望这个示例图足以解释我的问题。如何正确引用 subtitle 参数中的每一行数据? 使用以下代码,仅打印第一个“天”值。
library(tidyverse)
library(gganimate)
df %>%
ggplot(aes(district, deathrate))+geom_col()+
labs(title = "Week: {current_frame}",
subtitle = paste0("Number of days: ", {df$days}))+
transition_manual(week) + ease_aes("linear")
由于 gganimate 使用胶水,我也尝试了胶水符号,但这会返回其他错误...
subtitle = "Number of days: {days}"
subtitle = "Number of days: {df$days}"
如果可以在字幕参数之外完成,我也会很高兴:)
【问题讨论】: